创建一个新列以显示数据框中项目的出现次数

时间:2018-12-06 16:19:03

标签: python pandas

我有一个数据框,其中包含一个看起来像这样的列

Name 
A
A
B
B
C

我想在此数据框中添加一列,其中包含“名称”中项目的出现编号

Name  New_Column
A     1
A     2
B     1
B     2
C     1

到目前为止,我可以将“名称”列转换为列表,然后在其上循环并创建new_column,但是有没有更直接的方法可以直接在熊猫中执行此操作?

1 个答案:

答案 0 :(得分:4)

groupbycumcount

cumcount的唯一目的是分别增加每个组。如果将一个添加到结果并将其分配为新列:

df.assign(New_Column=df.groupby('Name').cumcount() + 1)

  Name  New_Column
0    A           1
1    A           2
2    B           1
3    B           2
4    C           1