python - 仅在使用 pandas 的组中获取重复值
问题描述
我有一个数据框,例如:
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_values
默认DataFrame.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
推荐阅读
- reactjs - 材质 ui 输入基础自动对焦不起作用
- sql - 全部来自第二张桌子中的一张桌子
- excel - Excel从日期中删除时间戳并减去天数
- flutter - 如何在颤振中添加条件
- java - Css不在速度模板中呈现(JAVA)
- java - 如何使用 selenium/katalon 在 ag-grid 表中更快地滚动?
- python - Pandas 中带有频率数据的 OD 矩阵
- java - Jacoco 代码覆盖率 - 某些类未出现在报告中
- reactjs - React Babel/Jest 初始设置
- android - 模拟器中Android APP的appium自动测试密码输入,但xml文件中缺少密码输入字段