pandas 根据先前的值创建组
Posted
技术标签:
【中文标题】pandas 根据先前的值创建组【英文标题】:pandas create groups based on previous value 【发布时间】:2019-10-09 18:12:01 【问题描述】:我有一个按整数列排序的 DataFrame v1
:
v1
0 1
1 5
2 6
3 12
4 15
5 23
6 24
7 25
8 33
我想像这样对 v1 中的值进行分组:如果值 - prev_value 为此,我想为每个组提供越来越多的数字。
所以我想创建另一个列,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
我需要对日期时间列执行相同的任务:分组值 if value - prev_value
我知道我可以使用标准 for 循环来解决这个问题。有没有更好的 pandas 方式?
【问题讨论】:
【参考方案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
【讨论】:
以上是关于pandas 根据先前的值创建组的主要内容,如果未能解决你的问题,请参考以下文章
根据其他列中的值在 python 3 (pandas) 数据框中创建新列