gpt4 book ai didi

python - 删除所有在一列中相同但在另一列中不同的数据框条目

转载 作者:行者123 更新时间:2023-12-02 01:44:17 24 4
gpt4 key购买 nike

考虑这个 pandas 数据框:

df = pd.DataFrame({'animal': ["dog", "dog", "dog", "cat", "snake", "dog", "snake", "cat", "goat", "bird"],
'label': [0, 0, 0, 1, 0, 1, 0, 1, 1, 1]})

我想删除标签与所有 动物不匹配的所有 条目。例如,dog 被标记为“0”三次,但第四次被标记为“1”,因此我想删除所有 dog 条目。对于其他动物,它们都被相应地标记,因此我想保留其余的,这样剩余的数据框将是:

df2 = pd.DataFrame({'Column1': ["cat", "snake", "snake", "cat", "goat", "bird"],
'label': [1, 0, 0, 1, 1, 1]})

感谢任何帮助。

最佳答案

我会使用 transform 来获取每组的一系列唯一值,并通过检查与 1 是否相等来计算 bool 掩码。

mask = df.groupby('animal')['label'].transform('nunique').eq(1)
result = df[mask]

详细信息:

>>> df.groupby('animal')['label'].transform('nunique')
0 2
1 2
2 2
3 1
4 1
5 2
6 1
7 1
8 1
9 1
Name: label, dtype: int64
>>> df.groupby('animal')['label'].transform('nunique').eq(1)
0 False
1 False
2 False
3 True
4 True
5 False
6 True
7 True
8 True
9 True
Name: label, dtype: bool

关于python - 删除所有在一列中相同但在另一列中不同的数据框条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71129390/

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