大熊猫根据先前的值创建组

时间:2019-10-09 18:12:01

标签: python pandas pandas-groupby window-functions

我有一个按整数列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循环来解决此问题。有没有更好的熊猫方式?

1 个答案:

答案 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