首页 > 解决方案 > 根据另一列中的值创建重复递增序列

问题描述

我在熊猫 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:

标签: pythonpandas

解决方案


你可以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

推荐阅读