これに似たデータフレームがある場合
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
のような式が1行のコードでこのトリックを行えることを望んでいました。しかし、それはうまくいきませんでした。すべての列を明示的に合計せずにそれを行う方法はありますか?
元のdfに対してdf['Fruit Total']= df.iloc[:, -4:-1].sum(axis=1)
を使用しても、最後の列( 'Kiwis')は追加されません。df.iloc[:, -4:]
代わりに、すべての列を選択します。
print(df)
Apples Bananas Grapes Kiwis
0 2.0 3.0 NaN 1.0
1 1.0 3.0 7.0 NaN
2 NaN NaN 2.0 3.0
df['Fruit Total']=df.iloc[:,-4:].sum(axis=1)
print(df)
Apples Bananas Grapes Kiwis Fruit Total
0 2.0 3.0 NaN 1.0 6.0
1 1.0 3.0 7.0 NaN 11.0
2 NaN NaN 2.0 3.0 5.0