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

In den obigen Datenrahmen, würde ich gerne Durchschnitt von jeder Zeile erhalten. Derzeit mache ich das:Berechnen Reihe Durchschnitt in Pandas

df.mean(axis=0) 

Allerdings wird damit auch die Region-Spalte entfernt. Wie kann ich den Mittelwert berechnen und auch die Region-Spalte beibehalten?

+0

Hallo, könnten Sie die tatsächliche und was Sie erwarten zu veröffentlichen? – WoodChopper

Antwort

16

Sie können eine neue Spalte angeben. Sie müssen auch den Mittelwert entlang der Zeilen berechnen, verwenden Sie also 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

danke @Alexander, das funktioniert! Ich erhalte eine Warnmeldung: Ein Wert versucht, auf eine Kopie eines Segments von einem DataFrame festgelegt zu werden. Verwenden Sie stattdessen .loc [row_indexer, col_indexer] = value. Wie kann ich das vermeiden? – user308827

+1

Dies sollte die Warnung loswerden: 'df = df.assign (mean = df.mean (axis = 1))' – Alexander

0

Wenn Sie nach einer durchschnittlichen Spalte suchen. Versuchen Sie dies,

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

# it drops the Region column 
df.drop('Region', axis=1) 
Verwandte Themen