pandas DataFrame列中重复值的顺序

时间:2015-07-10 09:52:44

标签: python pandas

如何在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

注意:订单和新列名称不符合。

我知道如何在丑陋的循环和行操作中执行此任务,但希望在熊猫中有另一个更美丽的解决方案。

1 个答案:

答案 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