首页 > 解决方案 > 删除 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 很陌生,仅将其用于数据分析,欢迎提供任何帮助。

标签: pythonpython-3.xpandasfor-loopcalculated-columns

解决方案


您收到错误是因为其中一列包含非数字数据。如果您希望代码运行没有错误(即只删除总和 > 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)

推荐阅读