我有一个如下数据的例子。
ID | Item
--------|-------
000001 | Blah
000001 | Blah
000001 | Blah
000002 | Blah
000002 | Blah
000003 | Blah
如果ID重复,我想拥有它,然后复制副本。所以它看起来像这样。
ID | Item
--------|-------
000001 | Blah
| Blah
| Blah
000002 | Blah
| Blah
000003 | Blah
目前我按ID排序整个数据框,然后使用df.iterrows()
,同时存储以前的值进行比较。我想知道是否有一个更好/正确的方法与熊猫相关。
答案 0 :(得分:3)
您可以使用boolean mask并传递duplicated
:
In [133]:
df.loc[df['ID'].duplicated(), 'ID'] = ''
df
Out[133]:
ID Item
0 000001 Blah
1 Blah
2 Blah
3 000002 Blah
4 Blah
5 000003 Blah
此处duplicated
对于重复值返回true:
In [135]:
df['ID'].duplicated()
Out[135]:
0 False
1 True
2 True
3 False
4 True
5 False
Name: ID, dtype: bool