根据另一列中的值创建重复的递增序列

时间:2019-03-22 15:10:49

标签: python pandas

我在熊猫df中有col1。我想做col2:

col1    col2
1       1
1       2
1       3
1       4
2       2
2       3
2       4
3       3
3       4
4       4

换句话说,对于col1中的每个不同的值,我希望col2是递增的整数,该整数以col1中的值开头,并递增一个,直到没有更多的行为止。

数据的结构方式使得max(col1)= 2450:

  • 当col1 = 1时,有2450行
  • 当col1 = 2时,有2449行
  • 当col1 = 2450时,有1行

1 个答案:

答案 0 :(得分:2)

您可以在GroupBycol1中,选择cumcount个组,然后add col1

df['col2'] = df.groupby('col1').cumcount().add(df.col1)

输出

    col1  col2
0     1     1
1     1     2
2     1     3
3     1     4
4     2     2
5     2     3
6     2     4
7     3     3
8     3     4
9     4     4