如何在pandas DataFrame中添加新列,它将计算所有重复值。在下面的示例中,我在列be中有865432
的3个值,因此作为输出,我为这些行添加列和填充值0,1和2。
输入表
A B
0 865432
1 865432
2 134567
3 865432
4 134567
5 222222
输出表
A B C
0 865432 0
1 865432 1
3 865432 2
2 134567 0
4 134567 1
5 222222 0
注意:订单和新列名称不符合。
我知道如何在丑陋的循环和行操作中执行此任务,但希望在熊猫中有另一个更美丽的解决方案。
答案 0 :(得分:2)
你可以在{&3;}' B'列然后调用groupby
:
In [345]:
df['C'] = df.groupby('B', as_index=False)['B'].cumcount()
df
Out[345]:
A B C
0 0 865432 0
1 1 865432 1
2 2 134567 0
3 3 865432 2
4 4 134567 1
5 5 222222 0