样本 DF:
id seq
1 3
1 2
1 1
1 0
1 2
1 1
1 0
1 3
1 2
1 1
1 0
Run Code Online (Sandbox Code Playgroud)
这就是我希望相同的数据框的外观:
id seq seq_num
1 3 0
1 2 0
1 1 0
1 0 0
1 2 1
1 1 1
1 0 1
1 3 2
1 2 2
1 1 2
1 0 2
Run Code Online (Sandbox Code Playgroud)
本质上,我希望seq_num
每次 0 显示时都会改变seq
。还应seq_num
继续增加。
我真的不太确定如何从这里开始。我的熊猫知识让我失望。
任何帮助将非常感激。
国际大学学院,groupby().cumsum()
:
df['seq_num'] = (df.seq.diff().gt(0)
.groupby(df['id'])
.cumsum()
)
Run Code Online (Sandbox Code Playgroud)
输出:
id seq seq_num
0 1 3 0.0
1 1 2 0.0
2 1 1 0.0
3 1 0 0.0
4 1 2 1.0
5 1 1 1.0
6 1 0 1.0
7 1 3 2.0
8 1 2 2.0
9 1 1 2.0
10 1 0 2.0
Run Code Online (Sandbox Code Playgroud)
如果您不关心不同的顺序id
,则可以删除.groupby()
。
归档时间: |
|
查看次数: |
255 次 |
最近记录: |