2017-02-06 8 views
6

Если у меня есть dataframe, подобное этомуПанда: сумма до нескольких столбцов в один столбец

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

Я хотел бы добавить столбец как этого

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

Я думаю, вы могли бы использовать df['Apples'] + df['Bananas'] и т. д., но мой фактический блок данных намного больше этого. Я надеялся, что такая формула, как df['Fruit Total']=df[-4:-1].sum, может сделать трюк в одной строке кода. Однако это не сработало. Есть ли способ сделать это без явного суммирования всех столбцов?

+0

Посмотрите там. http://stackoverflow.com/questions/25748683/pandas-sum-dataframe-rows-for-given-columns – konstov

ответ

6

Вы можете сначала выбрать по iloc, а затем 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

Отлично. Илок - это то, что я искал. – Duudsrednaz