我有一个这样的数据框:
import pandas as pd
data = [['bob', 1], ['james', 4], ['joe', 4], ['joe', 1], ['bob', 3], ['wendy', 5], ['joe', 7]]
df = pd.DataFrame(data, columns=['name', 'score'])
print(df)
看起来像:
name score
0 bob 1
1 james 4
2 joe 4
3 joe 1
4 bob 3
5 wendy 5
6 joe 7
我想以Python的方式删除所有只有一次出现的人,即结果应如下所示:
name score
0 bob 1
2 joe 4
3 joe 1
4 bob 3
6 joe 7
...而我该如何处理只出现1或2次的条目呢?即
name score
2 joe 4
3 joe 1
6 joe 7
尝试此操作,DataFrameGroupBy.nunique
以获取每个组中唯一元素的计数并应用于isin
过滤器事件。
g = df.groupby(['name'])['score'].transform('nunique')
df[~g.isin([1])]
name score
0 bob 1
2 joe 4
3 joe 1
4 bob 3
6 joe 7
df[~g.isin([1,2])]
name score
2 joe 4
3 joe 1
6 joe 7
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句