2017-02-04 12 views
-1

私はすべての行の平均を計算するcsvデータセットを持っています。平均は14行目のデータから計算されます。これは私が今まで行ってきたことですが、平均値。誰かがこれで私を助けることができますか?パンダ:平均を計算する

このAxisのこととも混乱しています。

file = ('dataset.csv') 

df = pd.read_csv(file) 


d_col = df[df.columns[14:]] 

mean_value = d_col['mean'] = d_col.mean(axis=1, skipna=True, numeric_only=True) 

print mean_value 

d_col.to_csv('out.csv') 

答えて

1

これは、使用している非常に奇妙なインデックス構文です。明確な方法は、次のようになります。あなたは正しくやっているように見えるの列で平均をとる

d_col = df.iloc[:, 14:] 

軸= 0の手段、および行によって軸= 1、。私は、あなたが平均を得ていないことがどういう意味なのかよく分かりません。 d_colには元のデータと、結果を含む「平均」という名前の新しい列が含まれている必要があります。

1

サンプルデータを提供していないため、次のサンプルコードを参照してください。最初の列は無視する必要のあるテキスト列ですが、DataFrame dfの他の列は平均値の計算に使用する列です。

0 0.693024 
1 -0.356701 
2 0.082385 
3 -0.115622 
4 -0.060414 
5 0.104119 
6 -0.435787 
7 0.023327 
8 -0.144272 
9 0.363254 
dtype: float64 

/編集:

# prepare some dataset 
letters = 'abcdefghijklmnopqrstuvwxyz' 
rows = 10 
col1 = np.array(list(letters))[np.random.permutation(len(letters))[:rows]] 
df = pd.concat([pd.DataFrame(col1), pd.DataFrame(np.random.randn(rows, 10))], axis=1) 

result = df.iloc[:, 1:].mean(axis=1) 

結果は、このようになります。後者のようdf.ilocの代わりdf[df.columns[...]を使用するには、上記の変更の答えは、2つの列が同じ名前を持っている場合に問題になります。 peidaqiの答えを正しいものとしてマークしてください。

0

問題はここで嘘をつきました、私はmean_valueの代わりに出力csvファイルとしてd_colを保存していました。それは愚かですが、私はそれがピックアップの物事を学ぶ方法だと思います。ありがとう@peidaqiと他のあなたの説明のために。