gpt4 book ai didi

python - 根据多数规则删除重复项

转载 作者:太空狗 更新时间:2023-10-30 00:28:58 25 4
gpt4 key购买 nike

我有一个看起来像这样的表:

A  B
1 cat
1 cat
1 dog
2 illama
2 alpaca
3 donkey

使用 A 作为键,我想删除重复项,使数据框变为:

A  B
1 cat
3 donkey

1 重复了 3 次,值 cat 出现次数最多所以被记录下来。 2 没有多数,因此它被认为有歧义并被完全删除。 3 保留,因为它没有重复项。

最佳答案

groupby + pd.Series.mode

这是使用 pd.Series.mode 的两步解决方案:

# find the mode for each group
i = df.groupby('A').B.apply(pd.Series.mode).reset_index(level=1, drop=True)
# filter out groups which have more than one mode—ambiguous groups
j = i[i.groupby(level=0).transform('count') == 1].reset_index()

print(j)

A B
0 1 cat
1 3 donkey

groupby + <自定义功能 >

或者,定义一个计算模式的自定义函数并使用 apply 调用它.过滤逻辑包含在函数中。

def foo(x):
m = pd.Series.mode(x)
if len(m) == 1:
return m

df.groupby('A').B.apply(foo).reset_index(level=1, drop=True).reset_index()

A B
0 1 cat
1 3 donkey

关于python - 根据多数规则删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50356255/

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