对pandas数据框中的每一列应用函数

2024-04-25 09:39:12 发布

您现在位置:Python中文网/ 问答频道 /正文

如何用更多熊猫的方式编写以下函数:

     def calculate_df_columns_mean(self, df):
        means = {}
        for column in df.columns.columns.tolist():
            cleaned_data = self.remove_outliers(df[column].tolist())
            means[column] = np.mean(cleaned_data)
        return means

谢谢你的帮助。


Tags: columns函数inselfdffordatadef
2条回答

在我看来,对列的迭代是不必要的:

def calculate_df_columns_mean(self, df):
    cleaned_data = self.remove_outliers(df[column].tolist())
    return cleaned_data.mean()

假设remove_outliers仍然返回一个df,上面的内容就足够了

编辑

我认为以下几点应该管用:

def calculate_df_columns_mean(self, df):
    return df.apply(lambda x: remove_outliers(x.tolist()).mean()

使用^{}

# axis=0 means apply to columns; axis=1 to rows
df.apply(numpy.sum, axis=0) # equiv to df.sum(0)

相关问题 更多 >