Si j'ai un dataframe similaire à celui-ci
Apples Bananas Grapes Kiwis
2 3 nan 1
1 3 7 nan
nan nan 2 3
J'aimerais ajouter une colonne comme celle-ci
Apples Bananas Grapes Kiwis Fruit Total
2 3 nan 1 6
1 3 7 nan 11
nan nan 2 3 5
Je suppose que vous pourriez utiliser df['Apples'] + df['Bananas']
et ainsi de suite, mais ma trame de données réelle est beaucoup plus grande que cela. J'espérais une formule comme df['Fruit Total']=df[-4:-1].sum
pourrait faire l'affaire en une ligne de code. Cela n'a pas fonctionné cependant. Existe-t-il un moyen de le faire sans résumer explicitement toutes les colonnes?
Si vous utilisez df['Fruit Total']= df.iloc[:, -4:-1].sum(axis=1)
sur votre fichier d'origine, la dernière colonne ('Kiwis') ne sera pas ajoutée, vous devez utiliser df.iloc[:, -4:]
à la place pour sélectionner toutes les colonnes:
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