python - 删除 Pandas Dataframe 列范围内的列,其中每列的总和小于 10
问题描述
如果该列的总行总和值小于 10,我需要遍历预定义的列范围并删除/删除该列,但我无法让它工作。到目前为止,我已经尝试了以下各种迭代:
for column in FinalData.columns[109:]:
if FinalData[column].sum < 10:
FinalData[column].drop
数据框 FinalData 包含 300 列数据,我只想应用于 109 列以后。运行上面的代码会产生错误:
TypeError: '<' not supported between instances of 'method' and 'int'
我对 Python 很陌生,仅将其用于数据分析,欢迎提供任何帮助。
解决方案
您收到错误是因为其中一列包含非数字数据。如果您希望代码运行没有错误(即只删除总和 > 10 的数字列),您可以使用:
from pandas.api.types import is_numeric_dtype
for column in FinalData.columns[109:]:
if is_numeric_dtype(FinalData[column]):
if sum(FinalData[column]) < 10:
FinalData.drop([column], axis=1, inplace=True)
推荐阅读
- python - 在python中递归搜索文件的最快方法是什么?
- android - 在 Android Studio 中生成签名的 apk 时发生错误
- java - 从配置中动态读取@JsonProperty
- sql-server - SQL Server全文搜索:词的解析形式不同的结果
- c# - Enterprise Architect的元素注释中未显示新行
- react-native - React Native:无法使用地理定位 API 访问位置
- python - Pandas:如何按索引值添加行值
- php - Doctrine ORM:按 2 个类别过滤文章
- angular - angular 2+中的通用组件+通用服务
- xml - 如何验证嵌套元素中的唯一属性?