gpt4 book ai didi

python - 基于两列删除重复项同时删除不一致的数据

转载 作者:太空宇宙 更新时间:2023-11-03 13:55:57 61 4
gpt4 key购买 nike

我有一个像这样的 Pandas 数据框:

   a  b  c
0 1 1 1
1 1 1 0
2 2 4 1
3 3 5 0
4 3 5 0

其中前两列(“a”和“b”)是 ID,而最后一列(“c”)是验证(0 = neg,1 = pos)。我确实知道如何根据前 2 列的值删除重复项,但是在这种情况下,我还想删除不一致的数据,即验证为正数和负数的重复数据。因此,例如,前 2 行重复但不一致,因此我应该删除整个记录,而最后 2 行既重复又一致,所以我会保留其中一条记录。预期结果应该是:

   a  b  c
0 2 4 1
1 3 5 0

真实的数据帧每组可以有两个以上的重复项,并且如您所见,索引也已更改。谢谢。

最佳答案

首先按 GroupBy.transform 筛选行与 SeriesGroupBy.nunique仅获取具有 boolean indexing 的唯一值组然后 DataFrame.drop_duplicates :

df = (df[df.groupby(['a','b'])['c'].transform('nunique').eq(1)]
.drop_duplicates(['a','b'])
.reset_index(drop=True))
print (df)
a b c
0 2 4 1
1 3 5 0

详细信息:

print (df.groupby(['a','b'])['c'].transform('nunique'))
0 2
1 2
2 1
3 1
4 1
Name: c, dtype: int64

关于python - 基于两列删除重复项同时删除不一致的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55592217/

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