假设我有下面的 pandas DataFrame:
A B C D
1 foo one 0 0
2 foo one 2 4
3 foo two 4 8
4 cat one 8 4
5 bar four 6 12
6 bar three 7 14
7 bar four 7 14
我想选择所有在 A 中具有相同值但在 B 中具有不同值的行。所以我希望我的代码输出为:
A B C D
1 foo one 0 0
3 foo two 4 8
5 bar three 7 14
6 bar four 7 14
最有效的方法是什么?我有大约 11,000 行,列值变化很大,但这种情况经常出现。在我的数据集中,如果 A 列中的元素相等,则相应的 B 列值也应该相等,但是由于标记错误,情况并非如此,我想解决这个问题,我这样做是不切实际的一。
原文由 tinman248 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以尝试
groupby()
+filter
+drop_duplicates()
:或者,如果您想在列的子集之间删除重复项
A
&B
然后可以在下面使用,但该行将具有cat
以及