gpt4 book ai didi

python - 从 Pandas 数据框中提取重复

转载 作者:太空宇宙 更新时间:2023-11-04 11:18:32 31 4
gpt4 key购买 nike

我有一张 table :

name       signature
XXX DA
XXX DB
XXX DC
YYY DA
YYY DB
YYY DC
XXX DA
XXX DE
CCC AA
CCC AB

如您所见,我在表中有重复 - 名称 col 是用户的名称。签名是一个代码。我需要从此数据框中删除并将所有重复项放入临时数据框中,但在特殊条件下。

如果在数据框中重复 name AND signature - 所有具有重复 name 的记录都应删除并放入另一个数据框中。

所以根据上面的数据框,new_data应该是:

   name       signature
YYY DA
YYY DB
YYY DC
CCC AA
CCC AB

以及具有重复值的新数据框:

   name       signature
XXX DA
XXX DB
XXX DC
XXX DA
XXX DE

我怎样做才能最好?我在谷歌和 SO 中寻找好的建议,但没有找到任何帮助。

我只是通过 for 循环 完成的,但问题是一个大尺寸。我的 dataFrame 有 15 000 000 条记录。所以我需要做得更快。可以肯定的是,pandas 或 python 有一个我没有找到的更快的方法。有人可以帮我解决这个问题吗?

最佳答案

使用DataFrame.duplicated用于获取重复的 name 并通过 Series.isin 过滤原始 DataFrameboolean indexing成员(member)资格:

vals = df.loc[df.duplicated(['name','signature']), 'name'].unique()
mask = df['name'].isin(vals)

df1 = df[~mask]
df2 = df[mask]

print (df1)
name signature
3 YYY DA
4 YYY DB
5 YYY DC
8 CCC AA
9 CCC AB

print (df2)
name signature
0 XXX DA
1 XXX DB
2 XXX DC
6 XXX DA
7 XXX DE

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

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