pandas - 删除列中不常见的值
问题描述
我有一个带有 ID 和类别的 Pandas 数据框以及下面的一些标志。当我运行这个
df['category'].value_counts().tail(15)
我看到其中有十几个发生不到 7 次。所以我想从数据框中删除具有这些类别的行。
我想运行这样的东西,但它给了我错误:
df.drop(df[df.category.value_counts() < 7].index, inplace=True)
IndexingError:作为索引器提供的不可对齐的布尔系列(布尔系列的索引和索引对象的索引不匹配)。
如何从数据框中删除那些类别发生少于 7 次的行?
谢谢你。
解决方案
尝试transform
df = df[df.groupby('category')['category'].transform('count')>=7]
推荐阅读
- java - Android Studio ArrayList 未填充到 onCompleteListener
- json - 为什么我的 API 请求仅返回字符串有效负载 [JavaScript]
- r - GCP 上 Rstudio-server 的默认用户名/密码
- kubernetes - 了解删除有状态集
- python - 如何在mac上检测用户登录失败?
- apache-spark - Aws Emr Spark 使用胶水作为配置单元元存储?
- memory - 估计 AWS Neptune 上的图形数据库大小
- flutter - 如何在颤动中创建一个始终粘在页面底部的按钮?
- javascript - 几个图在flot中具有相同的图例
- ais - 如何根据 AIS 140 标准计算校验和