gpt4 book ai didi

python - 在 Pandas 数据框中查找重复行

转载 作者:太空狗 更新时间:2023-10-30 01:11:50 27 4
gpt4 key购买 nike

我正在尝试在 pandas 数据框中查找重复的行。

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 可能非常非常大....

最佳答案

使用groupby,创建一个新的索引列,然后调用duplicated:

df['index_original'] = df.groupby(['col1', 'col2']).col1.transform('idxmin')    
df[df.duplicated(subset=['col1','col2'], keep='first')]

col1 col2 index_original
2 1 2 0
4 1 2 0

详情

groupby前两列,然后调用transform + idxmin得到每组的第一个索引。

df.groupby(['col1', 'col2']).col1.transform('idxmin') 

0 0
1 1
2 0
3 3
4 0
Name: col1, dtype: int64

duplicated 给我一个我想保留的值的 bool 掩码:

df.duplicated(subset=['col1','col2'], keep='first')

0 False
1 False
2 True
3 False
4 True
dtype: bool

剩下的只是 bool 索引

关于python - 在 Pandas 数据框中查找重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47180983/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com