2017-06-26 2 views
0

Ich möchte eine neue Spalte namens 'test' in meinem Dataframe erstellen, die gleich der Summe aller Spalten beginnend mit Spalte 9 bis ist das Ende des Datenrahmens. Diese Spalten haben alle den Datentyp float.Python: Erstellen einer neuen Spalte gleich der Summe aller Spalten Ausgehend von Spalte Nummer 9

Unten ist der Code, den ich versucht, aber es hat nicht funktioniert -> gibt mir alle NaN zurück Werte in ‚test‘ Säule:

df_UBSrepscomp['test'] = df_UBSrepscomp.iloc[:, 9:].sum() 

Antwort

0

Wenn ich Ihre Frage bin zu verstehen, können Sie die Zeile wollen -Summe beginnend bei Spalte 9. Ich glaube, Sie wollen .sum(axis=1). Sehen Sie sich ein Beispiel an, indem Sie zur Lesbarkeit die Spalte 2 anstelle von 9 verwenden.

df = DataFrame(npr.rand(10, 5)) 
df.iloc[0:3, 0:4] = np.nan # throw in some na values 
df.loc[:, 'test'] = df.iloc[:, 2:].sum(axis=1); print(df) 
     0  1  2  3  4  test 
0  NaN  NaN  NaN  NaN 0.73046 0.73046 
1  NaN  NaN  NaN  NaN 0.79060 0.79060 
2  NaN  NaN  NaN  NaN 0.53859 0.53859 
3 0.97469 0.60224 0.90022 0.45015 0.52246 1.87283 
4 0.84111 0.52958 0.71513 0.17180 0.34494 1.23187 
5 0.21991 0.10479 0.60755 0.79287 0.11051 1.51094 
6 0.64966 0.53332 0.76289 0.38522 0.92313 2.07124 
7 0.40139 0.41158 0.30072 0.09303 0.37026 0.76401 
8 0.59258 0.06255 0.43663 0.52148 0.62933 1.58744 
9 0.12762 0.01651 0.09622 0.30517 0.78018 1.18156 
+0

hat perfekt funktioniert! Danke ; Warum musst du hinzufügen (Achse = 1)? Was heißt das? – PineNuts0

+0

[This] (https://stackoverflow.com/questions/22149584/what-does-axis-in-pandas-mean) ist ein guter Durchlauf auf 'Achse = 0' gegen 'Achse = 1'. –

Verwandte Themen