Cible
J'ai une trame de données Pandas, comme indiqué ci - dessous, avec plusieurs colonnes et que vous souhaitez obtenir le total de la colonne, MyColumn
.
Trame de données -df
:
print df
X MyColumn Y Z
0 A 84 13.0 69.0
1 B 76 77.0 127.0
2 C 28 69.0 16.0
3 D 28 28.0 31.0
4 E 19 20.0 85.0
5 F 84 193.0 70.0
Ma tentative :
J'ai essayé d'obtenir la somme de la colonne en utilisant groupby
et .sum()
:
Total = df.groupby['MyColumn'].sum()
print Total
Cela provoque l'erreur suivante:
TypeError: 'instancemethod' object has no attribute '__getitem__'
Production attendue
Je m'attendais à ce que la sortie soit comme suit:
319
Ou bien, je voudrais df
être édité avec un nouveau row
titre TOTAL
contenant le total:
X MyColumn Y Z
0 A 84 13.0 69.0
1 B 76 77.0 127.0
2 C 28 69.0 16.0
3 D 28 28.0 31.0
4 E 19 20.0 85.0
5 F 84 193.0 70.0
TOTAL 319
Réponses:
Vous devez utiliser
sum
:Ensuite, vous utilisez
loc
avecSeries
, dans ce cas, l'index doit être défini comme la même colonne que vous devez additionner:car si vous passez scalaire, les valeurs de toutes les lignes seront remplies:
Deux autres solutions sont avec
at
, etix
voir les applications ci-dessous:Remarque: depuis Pandas v0.20,
ix
est obsolète. Utilisezloc
ou à lailoc
place.la source
.loc
fait l'exemple ci-dessus?loc
est pour le réglage avec agrandissement .at
fonctionne également pour le réglage avec agrandissement, voir la dernière modification.The .loc/.ix/[] operations can perform enlargement when setting a non-existant key for that axis.
, ouiloc
ouix
ou[]
. dans la section suivante est écritat may enlarge the object in-place as above if the indexer is missing.
Donc toutes les méthodes sont bonnes, maisat
c'est le plus rapide je pense.Une autre option que vous pouvez utiliser ici:
Vous pouvez également utiliser la
append()
méthode:Mettre à jour:
Si vous devez ajouter une somme pour toutes les colonnes numériques , vous pouvez effectuer l'une des opérations suivantes:
Utilisez
append
pour le faire de manière fonctionnelle (ne change pas la trame de données d'origine):Utilisez
loc
pour muter la trame de données en place:la source
Semblable à l'obtention de la longueur d'une dataframe
len(df)
, les éléments suivants ont fonctionné pour les pandas et les flammes:Ou bien
la source
S'il y a un problème, veuillez me corriger.
la source
Comme autre option, vous pouvez faire quelque chose comme ci-dessous
Sous le script, vous pouvez utiliser pour les données ci-dessus
la source