[PYTHON] Wenn Sie mehrere Statistiken mit groupby of pandas v1 erhalten möchten

Überblick

In pandas groupby wurde das Argument von agg () im Diktatformat angegeben, um mehrere Funktionen auf eine Spalte anzuwenden. Da diese Funktion jedoch in Version 1 gelöscht wurde, kann sie nicht mehr verwendet werden. Die Lösung. Die verwendeten Daten stammen aus Pandas-Dokumentation.

Daten

animals = pd.DataFrame({'kind': ['cat', 'dog', 'cat', 'dog'],
                                 'height': [9.1, 6.0, 9.5, 34.0],
                                 'weight': [7.9, 7.5, 9.9, 198.0]})
スクリーンショット 2020-02-23 0.59.20.png

Verarbeitung und Fehler, die ich diesmal versucht habe

#Addieren Sie für jede Art den Gesamtwert der Höhe und die Anzahl der Fälle"sum_all", "count_all"Benennen
animals.groupby("kind")["height"].agg({"sum_all":"sum", "count_all":"count"})
SpecificationError: nested renamer is not supported

Was war die Ursache?

Removed support for nested renaming in DataFrame.aggregate(), Series.aggregate(), core.groupby.DataFrameGroupBy.aggregate(), core.groupby.SeriesGroupBy.aggregate(), core.window.rolling.Rolling.aggregate() (GH18529)

Lösungen

――Das Problem besteht darin, dass Sie gleichzeitig aggregieren und umbenennen, damit Sie sie trennen können.

animals.groupby("kind")["height"].agg(["sum", "count"])
                                 .rename(columns={"sum": "sum_all", 
                                                  "count":"count_all"})

-Verwenden Sie Named Aggrecation (Feature ab Version 0.25).

animals.groupby("kind")["height"].agg(sum_all="sum",
                                      count_all="count")
animals.groupby("kind").agg(sum_all=("height", "sum"),
                            count_all=("height", "count"))

Referenz

Recommended Posts

Wenn Sie mehrere Statistiken mit groupby of pandas v1 erhalten möchten
Was tun, wenn Sie sich mit FileNotFoundError in der Dateireferenz verlieren?
Was tun, wenn Sie sich über TensorFlow v2 ohne Attribut 'app' ärgern?
Was tun, wenn Overalls "Abdeckung unbekannt" werden?
Nützliche Operation, wenn Sie alle Probleme in mehreren Programmiersprachen mit Codewars lösen möchten
Ich möchte ○○ mit Pandas machen
Wenn Sie Datenwissenschaftler werden möchten, beginnen Sie mit Kaggle
Schreiben Sie Python nicht, wenn Sie es mit Python beschleunigen möchten
Was tun, wenn bei der Pip-Installation ein Unicode-Dekodierungsfehler auftritt?
[TensorFlow] Wenn Sie TensorBoard ausführen möchten, installieren Sie es mit pip.
Wenn Sie awsebcli in CircleCI aufnehmen möchten, geben Sie die Python-Version an
Wenn Sie NumPy, Pandas, Matplotlib, IPython, SciPy unter Windows verwenden möchten
Was tun, wenn TypeError in min und max von numpy auftritt?
Was tun, wenn Sie nicht mit pip in einer Babun-Umgebung installieren können?
Wenn Sie Wörter in Python zählen möchten, können Sie bequem Counter verwenden.
Was tun, wenn Sie URL 443 mit pip nicht abrufen konnten?
Was tun, wenn Sie sich über "Wertefehler: unbekannt lokal: UTF-8" in python manage.py syncdb ärgern?
Was tun, wenn auf pipenv der Fehler "Keine Versionen gefunden" angezeigt wird?
Problemumgehung, wenn beim Versuch, PySide mit pip zu installieren, eine Fehlermeldung angezeigt wird
Swapon fehlgeschlagen: Was tun, wenn Sie sich über eine Operation ärgern, die nicht zulässig ist?
Wenn Sie den Wert mithilfe von Auswahlmöglichkeiten in der Vorlage im Django-Modell anzeigen möchten
Ich möchte mehrere Bilder mit matplotlib anzeigen.
Wenn Sie Word Cloud erstellen möchten.
[OpenCV] Wenn Sie überprüfen möchten, ob es mit imread richtig gelesen wird
Melden Sie sich einfach mit mehreren Konten bei AWS an
Was tun, wenn bei der Installation von Python mit pyenv eine Fehlermeldung angezeigt wird?
Was tun, wenn "Python nicht konfiguriert" angezeigt wird? Verwenden von PyDev in Eclipse
nb_conda_kernels wird empfohlen, wenn Sie die virtuelle Umgebung mit jupyter betreten möchten
Wenn Sie einen Discord-Bot mit Python erstellen möchten, verwenden wir ein Framework
Wenn Sie sich mit HTTP-Weiterleitungen 301 und 302 verlaufen
Was tun, wenn bei Do and Return in einem Golang-Test ein Fehler mit zu vielen Eingabeargumenten auftritt?
Was tun, wenn bei der Installation von Python 2 mit pyenv ein OpenSSL-Fehler auftritt?
Was tun, wenn in Hydrogen "Kein Kernel für Sprachpython gefunden" angezeigt wird?
Was tun, wenn in pycurl (einer von ihnen) "(35, 'SSL-Verbindungsfehler')" angezeigt wird?
Was tun, wenn beim Importieren von matplotlib in Python (Mac) eine Fehlermeldung angezeigt wird?
Wenn Sie den Fehler "Basismatrix ist singulär zur Arbeitsgenauigkeit" in GLPK erhalten
Ich möchte eine Fehlermeldung auf Japanisch mit dem Django-Passwortänderungsformular ausgeben
Was tun, wenn beim Importieren von matplotlib mit Jupyter ein Importfehler auftritt?
Was tun, wenn Sie Python auf IntelliJ ausführen und mit einem Fehler beenden?
So erhalten Sie mehrere Modellobjekte zufällig in Django
Ich möchte mit einem Knopf am Kolben übergehen
Einstellungen, wenn Sie Python-Mecab mit Travis ausführen möchten
Wenn Sie Cython verwenden möchten, schließen Sie auch python-dev ein
Zugriff mit dem Cache beim Lesen von_json mit Pandas
Wenn Sie mit dem Django REST-Framework filtern möchten
Ich möchte mit einem Roboter in Python arbeiten.
Wenn Sie in der for-Anweisung plt.save möchten
Konvertieren Sie numerische Variablen mit Pandas in kategoriale Variablen, indem Sie einen Schwellenwert festlegen
Konvertieren Sie 202003 bis 2020-03 mit Pandas
Notieren Sie sich, was Sie in Zukunft mit Razpai machen möchten
Was tun, wenn Swagger-Codegen mit Python und Importfehler ausgeführt wird? Es wird kein Modul mit dem Namen angezeigt
Wenn Sie ein Argument in die Abschlussfunktion einfügen und später ausführen möchten
Was tun, wenn bei yum ein Metalink für Repository-Fehler nicht abgerufen werden kann?
Was tun, wenn beim Ausführen von "certbot erneuern" in der CakePHP-Umgebung eine Fehlermeldung angezeigt wird?
Was tun, wenn beim Versuch, pip mit pyenv zu verwenden, ein undefinierter Fehler angezeigt wird?
[Python] Wenn Sie plötzlich ein Anfrageformular erstellen möchten
Lösung, wenn Sie einen 0xxx ASCII-Codierungsfehler mit Superset erhalten