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)
但是,这也取消了Region列。我如何计算平均值并保留区域列
答案 0 :(得分:39)
您可以指定新列。您还需要计算行的平均值,因此请使用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 :(得分:1)
我认为这就是您要寻找的:
df.drop('Region', axis=1).apply(lambda x: x.mean(), axis=1)
答案 2 :(得分:1)
我们可以使用范围函数找到行的平均值,即您的情况是从Y1961列到Y1965。
df['mean'] = df.iloc[:, 0:4].mean(axis=1)
如果要选择单个列
df['mean'] = df.iloc[:, [0,1,2,3,4].mean(axis=1)
答案 3 :(得分:0)
如果你想平均列。试试这个,
df.drop('Region', axis=1).apply(lambda x: x.mean())
# it drops the Region column
df.drop('Region', axis=1,inplace=True)