2016-08-09 7 views
1

の各列に関数を適用:助けを私はより多くのパンダの方法で、次の関数を書くことができますどのようにパンダのデータフレーム

 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 

感謝を。

+0

「remove_outliers do? – MaxU

+1

質問なぜ列に対して反復処理を行い、次にこれを行うのですか? 'cleaned_data = self.remove_outliers(df [column] .tolist())'?これは、すべての列のすべての列に対して外れ値を繰り返し削除しているようです。 – EdChum

+0

私はクリーンなデータの平均を計算したいと思います。 –

答えて

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() 
+0

remove_outliersはリストを取得し、クリーンリストを返します。 –

+0

私の新しい編集を試してみるとうまくいくはずですが、本当にあなたは 'remove_outliers'をnp配列と、可能であればベクター化された方法で操作するように修正することに焦点を当てるべきです – EdChum

関連する問題