我有一个按整数列v1
排序的DataFrame:
v1
0 1
1 5
2 6
3 12
4 15
5 23
6 24
7 25
8 33
我想像这样对v1中的值进行分组:如果值-prev_value <5,则它们具有相同的分组。
为此,我想为每个组增加数量。
所以我想创建另一列v1_group
,它将具有输出:
v1 v1_group
0 1 1
1 5 1
2 6 1
3 12 2 # 12 - 6 > 5, new group
4 15 2
5 23 3
6 24 3
7 25 3
8 33 4
我需要对datetime列执行相同的任务:如果value-prev_value 我知道我可以使用标准的for循环来解决此问题。有没有更好的熊猫方式?
答案 0 :(得分:1)
IIUC,
df['v1_group'] = df.v1.diff().ge(5).cumsum() + 1
输出:
v1 v1_group
0 1 1
1 5 1
2 6 1
3 12 2
4 15 2
5 23 3
6 24 3
7 25 3
8 33 4