2015-11-17 41 views
9
 Y1961  Y1962  Y1963  Y1964  Y1965 Region 
0 82.567307 83.104757 83.183700 83.030338 82.831958 US 
1 2.699372 2.610110 2.587919 2.696451 2.846247 US 
2 14.131355 13.690028 13.599516 13.649176 13.649046 US 
3 0.048589 0.046982 0.046583 0.046225 0.051750 US 
4 0.553377 0.548123 0.582282 0.577811 0.620999 US 

上記のデータフレームでは、各行の平均を取得したいと考えています。現在、私はこれをやっています:パンダの行平均を計算する

df.mean(axis=0) 

しかし、これもリージョンの列ではありません。どのように平均を計算し、領域の列を保持することができますか

+0

こんにちは、実際に投稿してもらえますか? – WoodChopper

答えて

16

新しい列を指定することができます。また、行に沿った平均を計算する必要があるので、axis=1を使用してください。

df['mean'] = df.mean(axis=1) 
>>> df 
     Y1961  Y1962  Y1963  Y1964  Y1965 Region  mean 
0 82.567307 83.104757 83.183700 83.030338 82.831958  US 82.943612 
1 2.699372 2.610110 2.587919 2.696451 2.846247  US 2.688020 
2 14.131355 13.690028 13.599516 13.649176 13.649046  US 13.743824 
3 0.048589 0.046982 0.046583 0.046225 0.051750  US 0.048026 
4 0.553377 0.548123 0.582282 0.577811 0.620999  US 0.576518 
+1

ありがとう@アレクサンダー、これは動作します!警告メッセージが表示されます。値は、DataFrameからスライスのコピーに設定しようとしています。 .loc [row_indexer、col_indexer] = valueを代わりに使用してみてください。どうすればそれを避けることができますか? – user308827

+1

これは、警告を取り除くはずです: 'df = df.assign(mean = df.mean(axis = 1))' – Alexander

0

平均的な列を探している場合は、試してみてください。

df.drop('Region', axis=1).apply(lambda x: x.mean()) 

# it drops the Region column 
df.drop('Region', axis=1) 
関連する問題