Python Pandas:根据出现次数删除条目

2024-03-27

我正在尝试从数据框中删除出现次数少于 100 次的条目。 数据框data看起来像这样:

pid   tag
1     23    
1     45
1     62
2     24
2     45
3     34
3     25
3     62

现在我计算标签出现的次数,如下所示:

bytag = data.groupby('tag').aggregate(np.count_nonzero)

但后来我不知道如何删除那些计数较低的条目......


0.12 中的新功能,groupby 对象有一个filter http://pandas.pydata.org/pandas-docs/dev/groupby.html#filtration方法,允许您执行以下类型的操作:

In [11]: g = data.groupby('tag')

In [12]: g.filter(lambda x: len(x) > 1)  # pandas 0.13.1
Out[12]:
   pid  tag
1    1   45
2    1   62
4    2   45
7    3   62

该函数(过滤器的第一个参数)应用于每个组(子帧),结果包括属于评估为 True 的组的原始 DataFrame 的元素。

Note: 在 0.12 中,顺序与原始 DataFrame 中的顺序不同 https://github.com/pydata/pandas/issues/4621,这在 0.13+ 中已修复:

In [21]: g.filter(lambda x: len(x) > 1)  # pandas 0.12
Out[21]: 
   pid  tag
1    1   45
4    2   45
2    1   62
7    3   62
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python Pandas:根据出现次数删除条目 的相关文章

随机推荐