我正在尝试在熊猫数据框中查找重复行。
df=pd.DataFrame(data=[[1,2],[3,4],[1,2],[1,4],[1,2]],columns=['col1','col2'])
df
Out[15]:
col1 col2
0 1 2
1 3 4
2 1 2
3 1 4
4 1 2
duplicate_bool = df.duplicated(subset=['col1','col2'], keep='first')
duplicate = df.loc[duplicate_bool == True]
duplicate
Out[16]:
col1 col2
2 1 2
4 1 2
有没有办法添加一个引用第一个副本(保留的)索引的列
duplicate
Out[16]:
col1 col2 index_original
2 1 2 0
4 1 2 0
注意:在我的情况下 df 可能非常大….
原文由 gabboshow 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用
groupby
,创建一个新的索引列,然后调用duplicated
:细节
我
groupby
前两列然后调用transform
+idxmin
获取每个组的第一个索引。duplicated
给我一个我想保留的值的布尔掩码:剩下的只是 _布尔索引_。