2017-02-06 16 views
6

Jeśli mam dataframe podobną do tej jednejPandy: Podsumowując wiele kolumn w jedną kolumnę

Apples Bananas Grapes Kiwis 
2  3   nan  1 
1  3   7  nan 
nan  nan  2  3 

Chciałbym dodać kolumnę jak ten

Apples Bananas Grapes Kiwis Fruit Total 
2  3   nan  1  6 
1  3   7  nan  11 
nan  nan  2  3  5 

Chyba można używać df['Apples'] + df['Bananas'] i tak dalej, ale moja faktyczna ramka danych jest znacznie większa niż ta. Miałem nadzieję, że formuła taka jak df['Fruit Total']=df[-4:-1].sum może zrobić lewę w jednym wierszu kodu. To jednak nie zadziałało. Czy jest jakiś sposób, aby to zrobić bez wyraźnego podsumowania wszystkich kolumn?

+0

tam szukać. http://stackoverflow.com/questions/25748683/pandas-sum-dataframe-rows-for-given-columns – konstov

Odpowiedz

6

Można najpierw wybrać przez iloc a następnie sum:

df['Fruit Total']= df.iloc[:, -4:-1].sum(axis=1) 
print (df) 
    Apples Bananas Grapes Kiwis Fruit Total 
0  2.0  3.0  NaN 1.0   5.0 
1  1.0  3.0  7.0 NaN   11.0 
2  NaN  NaN  2.0 3.0   2.0 
+0

Doskonały. iloc jest tym, czego szukałem. – Duudsrednaz

Powiązane problemy