2015-11-17 3 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 

В приведенной выше кадре данных я хотел бы получить среднее значение для каждой строки. В настоящее время я делаю это:Вычисление среднего числа строк в pandas

df.mean(axis=0) 

Однако это также устраняет столбец Region. как я могу вычислить среднее значение, а также сохранить полевой столбец

+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) 
Смежные вопросы