2015-11-17 633 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] =值代替。我怎樣才能避免這種情況? – 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)