首页 > 解决方案 > Python DataFrame:添加一列与其他列的值重复但以不同的方式

问题描述

我有重复 ID 的数据框,例如

  slNo | Id
  -----|---
    0  | 1
    1  | 2
    2  | 2
    3  | 3
    4  | 3
    5  | 2

我想有一个重复计数的新列,如下所示:

slNo | ID| count|
-----|-- |------|
0    | 1 | 1    |
1    | 2 | 1    |
2    | 2 | 2    |
3    | 3 | 1    |
4    | 3 | 2    |
5    | 2 | 3    |

有人可以帮忙吗?

标签: pythonpandas

解决方案


尝试cumcount使用groupby

df['count'] = df.groupby('Id').cumcount() + 1
print(df)

输出:

   slNo  Id  c
0     0   1  1
1     1   2  1
2     2   2  2
3     3   3  1
4     4   3  2
5     5   2  3

推荐阅读