我正在尝试从数据框中删除出现次数少于 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(使用前将#替换为@)