我在 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 行
最佳答案
你可以GroupBy
col1
列,取 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
关于python - 根据另一列中的值创建重复的递增序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55302640/