栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 面试经验 > 面试问答

Python Pandas:排除低于特定频率计数的行

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python Pandas:排除低于特定频率计数的行

在您的有限数据集上,以下工作:

In [125]:df.groupby('positions')['r vals'].filter(lambda x: len(x) >= 3)Out[125]:0    1.22    2.33    1.86    1.9Name: r vals, dtype: float64

您可以分配此过滤器的结果,并将其

isin
用于过滤orig df:

In [129]:filtered = df.groupby('positions')['r vals'].filter(lambda x: len(x) >= 3)df[df['r vals'].isin(filtered)]Out[129]:   r vals  positions0     1.2          11     1.8          22     2.3          13     1.8          16     1.9          1

您只需要更改

3
20
您的情况

另一种方法是用于

value_counts
创建聚合系列,然后我们可以使用它来过滤您的df:

In [136]:counts = df['positions'].value_counts()countsOut[136]:1    43    22    1dtype: int64In [137]:counts[counts > 3]Out[137]:1    4dtype: int64In [135]:df[df['positions'].isin(counts[counts > 3].index)]Out[135]:   r vals  positions0     1.2          12     2.3          13     1.8          16     1.9          1

编辑

如果要在数据帧而不是在系列上过滤groupby对象,则可以

filter
直接调用groupby对象:

In [139]:filtered = df.groupby('positions').filter(lambda x: len(x) >= 3)filteredOut[139]:   r vals  positions0     1.2          12     2.3          13     1.8          16     1.9          1


转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/640068.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号