python - 当数字小于前一个数字时拆分数据帧

标签 python pandas dataframe

我有这样一个系列: test = pd.Series([2.4,5.6,8.8,25.6,53.6,1.7,5.7,8.9])

我想在下一个数字小于前一个数字的地方将它分成两个系列。这在任何系列中只发生一次,但不会发生在可靠的位置(可能是第 7 名、第 4 名等)。

结果应该是这样的:

test1
2.4
5.6
8.8
25.6
53.6

test2
1.7
5.7
8.9

最佳答案

你可以找到位置

pos = (test - test.shift(-1)).argmax()

现在系列直到那是

>>> test[: pos + 1]
0     2.4
1     5.6
2     8.8
3    25.6
4    53.6
dtype: float64

同理,余数为

>>> test[pos + 1: ]
5    1.7
6    5.7
7    8.9
dtype: float64

关于python - 当数字小于前一个数字时拆分数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50242276/

相关文章:

python - 如何在pandas操作的网页上制作进度条

python - 对行进行排序并删除 NaN 值

python - 如何找到组内值之间的最小差异

Python:如何从不满足特定条件的元素创建列表

python - 从 Pandas 的日期时间列中提取日期和小时

python - 从组中的另一行获取值

python - 来自 Python : sub. stdin.write IOError Broken Pipe 的 C 子进程

python - 在 pandas dataframe map 函数中使用 eval 语句的正确方法

数据框上的 python pandas 条件总和,它在多列上分组

python - 在循环中连接数据帧