Ziel
Ich habe einen Pandas-Datenrahmen, wie unten gezeigt, mit mehreren Spalten und möchte die Gesamtsumme der Spalten erhalten MyColumn
.
Datenrahmen -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
Mein Versuch :
Ich habe versucht, die Summe der Spalte mit groupby
und zu erhalten .sum()
:
Total = df.groupby['MyColumn'].sum()
print Total
Dies verursacht den folgenden Fehler:
TypeError: 'instancemethod' object has no attribute '__getitem__'
Erwartete Ausgabe
Ich hätte erwartet, dass die Ausgabe wie folgt ist:
319
Oder alternativ möchte ich df
mit einem neuen row
Titel bearbeitet werden TOTAL
, der die Summe enthält:
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
Antworten:
Sie sollten verwenden
sum
:Dann verwenden Sie
loc
mitSeries
. In diesem Fall sollte der Index auf die gleiche Spalte eingestellt werden, die Sie summieren müssen:Wenn Sie den Skalar übergeben, werden die Werte aller Zeilen gefüllt:
Zwei weitere Lösungen sind mit
at
undix
siehe die folgenden Anwendungen:Hinweis: Seit Pandas v0.20
ix
ist veraltet. Verwenden Sieloc
oderiloc
stattdessen.quelle
.loc
im obigen Beispiel passiert?loc
dient zum Einstellen mit Vergrößerung .at
funktioniert auch für Einstellungen mit Vergrößerung, siehe letzte Bearbeitung.The .loc/.ix/[] operations can perform enlargement when setting a non-existant key for that axis.
, soloc
oderix
oder[]
. im nächsten Abschnitt wird geschriebenat may enlarge the object in-place as above if the indexer is missing.
Also sind alle Methoden gut, aberat
am schnellsten denke ich.Eine weitere Option, die Sie hier wählen können:
Sie können auch folgende
append()
Methode verwenden:Aktualisieren:
Wenn Sie für alle numerischen Spalten eine Summe anhängen müssen , können Sie einen der folgenden Schritte ausführen :
Verwenden
append
Sie diese Option , um dies auf funktionale Weise zu tun (ändert den ursprünglichen Datenrahmen nicht):Verwenden Sie
loc
diese Option, um den Datenrahmen an Ort und Stelle zu mutieren:quelle
Ähnlich wie beim Abrufen der Länge eines Datenrahmens
len(df)
funktionierte Folgendes für Pandas und Blaze:oder alternativ
quelle
Wenn es hier ein Problem gibt, korrigieren Sie mich bitte.
quelle
Als weitere Option können Sie Folgendes tun
Unterhalb des Skripts können Sie die oben genannten Daten verwenden
quelle