简体   繁体   English

Pandas 根据另一列添加增量数字

[英]Pandas Add an incremental number based on another column

Consider a dataframe with a column like this:考虑具有如下列的 dataframe:

sequence 
1
2
3
4
5
1
2
3
1
2
3
4
5
6
7

I wish to create a column when the sequence resets.我希望在序列重置时创建一个列。 The sequence is of variable length.序列是可变长度的。

Such that I'd get something like:这样我会得到类似的东西:

sequence run
1 1
2 1
3 1
4 1
5 1
1 2
2 2
3 2
1 3
2 3
3 3
4 3
5 3
6 3
7 3

Try with diff then cumsum尝试diff然后cumsum

df['run'] = df['sequence'].diff().ne(1).cumsum()
Out[349]: 
0     1
1     1
2     1
3     1
4     1
5     2
6     2
7     2
8     3
9     3
10    3
11    3
12    3
13    3
14    3
Name: sequence, dtype: int32

Use:使用:

dataset['sequence'] = dataset.groupby('run').cumcount().add(1)

output example: output 示例:

sequence run
   y      1
   a      1
   g      1
   a      2
   b      1
   a      3
   b      2

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM