计算pandas中的行平均值

时间:2015-11-17 06:15:34

标签: python pandas

       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列。我如何计算平均值并保留区域列

4 个答案:

答案 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)