【问题标题】:Python, pandas exclude outliers functionPython,熊猫排除异常值函数
【发布时间】:2021-07-20 07:14:31
【问题描述】:

我试图从 pandas 数据框中排除一些异常值,但该函数只是返回同一个表而没有任何区别。我不知道为什么。

排除异常值

def exclude_outliers(DataFrame, col_name):
    interval = 2.5*DataFrame[col_name].std()
    mean = DataFrame[col_name].mean()
    m_i = mean + interval 
    DataFrame = DataFrame[DataFrame[col_name] < m_i]
 

outlier_column = ['util_linhas_inseguras', 'idade', 'vezes_passou_de_30_59_dias', 'razao_debito', 'salario_mensal', 'numero_linhas_crdto_aberto',
                  'numero_vezes_passou_90_dias', 'numero_emprestimos_imobiliarios', 'numero_de_vezes_que_passou_60_89_dias', 'numero_de_dependentes']

for col in outlier_column:
    exclude_outliers(df_train, col)

df_train.describe()

【问题讨论】:

  • 能否粘贴一些示例数据,我们可以复制并运行代码

标签: python pandas


【解决方案1】:

正如所写,您的函数不会返回任何内容,因此,您的 for 循环不会对 DataFrame 进行任何更改。请尝试以下操作:

在函数的末尾,添加以下行:

def exclude_outliers(DataFrame, col_name):
   ...  # Function filters the DataFrame
   # Add this line to return the filtered DataFrame
   return DataFrame

然后修改你的for循环来更新df_train

for col in outlier_column:
    # Now we update the DataFrame on each iteration
    df_train = exclude_outliers(df_train, col)

【讨论】:

    猜你喜欢
    • 2018-01-09
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    • 2020-07-26
    • 2017-01-24
    • 2019-11-20
    • 2018-09-05
    • 2019-04-14
    相关资源
    最近更新 更多