当另一列中的diff()小于0时,如何在添加1的数据帧中创建新列



我有这个数据:

data = pd.DataFrame([0.0, 0.1, 0.2, 0.3, 1.5, 2.7, 3.8, 0.0, 0.3, 0.8, 1.2, 2.5, 3.5, 0.0, 0.5, 1.0, 3.0, 0.0, 1.5, 2.6, 3.6, 4.0])

我有不止一个专栏,但我正在提供我感兴趣的专栏。

我需要添加另一个名为"迭代"的列,它应该是这样的:

data = pd.DataFrame([1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4])

换句话说,每一次行+1和行之间的差小于零,迭代行就应该增加一个单位。例如:0.0-3.8=-3.8。在这一点上,迭代应该增加一个单位。

先尝试diff,然后尝试cumsum

out = (data[0].diff()<0).cumsum()+1
Out[24]: 
0     1
1     1
2     1
3     1
4     1
5     1
6     1
7     2
8     2
9     2
10    2
11    2
12    2
13    3
14    3
15    3
16    3
17    4
18    4
19    4
20    4
21    4
Name: 0, dtype: int32

最新更新