gpt4 book ai didi

python - 只在 pandas 组中获取重复值

转载 作者:太空狗 更新时间:2023-10-30 02:36:16 25 4
gpt4 key购买 nike

我有一个数据框,例如:

groups  ids numbers
group3 id4 89
group1 id1 50
group1 id1 30
group1 id2 90
group2 id4 89
group2 id6 76
group3 id4 90

以及它通过 groupby 找到的想法将重复的 id 分组,并获得一个只有重复 id 的新数据框,例如:

group1  id1 50
group1 id1 30
group3 id4 89
group3 id4 90

我试过:

for groups in df.groupby('groups'):
print(df['ids'].duplicated)

感谢您的帮助。

最佳答案

函数 groupby 不是必需的,为了更好的性能使用 DataFrame.duplicated通过多列和参数 keep=False 获取所有重复项,然后按 boolean indexing 过滤:

df = df[df.duplicated(['groups','ids'], keep=False)]
print (df)
groups ids numbers
0 group3 id4 89
1 group1 id1 50
2 group1 id1 30
6 group3 id4 90

如果需要排序,请添加 DataFrame.sort_valuesDataFrame.reset_index对于默认索引:

df = (df[df.duplicated(['groups','ids'], keep=False)]
.sort_values(['groups','ids'])
.reset_index(drop=True))
print (df)
groups ids numbers
0 group1 id1 50
1 group1 id1 30
2 group3 id4 89
3 group3 id4 90

关于python - 只在 pandas 组中获取重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55125359/

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