[PYTHON] Si vous souhaitez obtenir plusieurs statistiques avec groupby of pandas v1

Aperçu

Dans pandas groupby, j'ai donné l'argument de agg () au format dict pour appliquer plusieurs fonctions à une colonne, mais comme cette fonction a été supprimée dans la v1, elle ne peut plus être utilisée. La solution. Les données utilisées proviennent de la documentation pandas.

Les données

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

Traitement et erreur que j'ai essayé cette fois

#Pour chaque espèce, additionnez la valeur totale de la hauteur et le nombre de caisses, et chaque"sum_all", "count_all"Appeler
animals.groupby("kind")["height"].agg({"sum_all":"sum", "count_all":"count"})
SpecificationError: nested renamer is not supported

Quelle était la cause

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

Solution

―― Le problème est que vous récapitulez et renommez en même temps, vous pouvez donc les séparer.

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

-Utiliser Named Aggrecation (fonctionnalité de la v0.25)

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

référence

Recommended Posts

Si vous souhaitez obtenir plusieurs statistiques avec groupby of pandas v1
Que faire si vous vous perdez dans la référence de fichier avec FileNotFoundError
Que faire si vous vous fâchez avec TensorFlow v2 sans l'attribut "app"
Que faire si Combinaisons devient «couverture inconnue»
Opération utile lorsque vous souhaitez résoudre tous les problèmes dans plusieurs langages de programmation avec Codewars
Je veux faire ○○ avec les Pandas
Si vous souhaitez devenir data scientist, commencez par Kaggle
N'écrivez pas Python si vous voulez l'accélérer avec Python
Que faire si vous obtenez une erreur de décodage Unicode avec l'installation de pip
[TensorFlow] Si vous souhaitez exécuter TensorBoard, installez-le avec pip.
Si vous souhaitez inclure awsebcli dans CircleCI, spécifiez la version de python
Si vous souhaitez utiliser NumPy, Pandas, Matplotlib, IPython, SciPy sous Windows
Que faire lorsque TypeError se produit au minimum et au maximum de numpy
Que faire si vous ne pouvez pas installer avec pip dans l'environnement babun
Si vous souhaitez compter les mots en Python, il est pratique d'utiliser Counter.
Que faire si vous obtenez Impossible de récupérer l'URL 443 avec pip
Que faire lorsque vous vous fâchez avec "Value Error: unknown local: UTF-8" dans python manage.py syncdb
Que faire si vous obtenez une erreur "Aucune version trouvée" sur pipenv
Solution de contournement si vous obtenez une erreur lors de la tentative d'installation de PySide avec pip
swapon failed: Que faire si vous vous fâchez contre l'opération non autorisée
Si vous souhaitez afficher la valeur à l'aide des choix du modèle dans le modèle Django
Je souhaite afficher plusieurs images avec matplotlib.
Si vous souhaitez créer Word Cloud.
[OpenCV] Lorsque vous voulez vérifier s'il est lu correctement avec imread
Connectez-vous facilement à AWS avec plusieurs comptes
Que faire si vous obtenez une erreur lors de l'installation de python avec pyenv
Que faire si vous obtenez «Python non configuré». Utilisation de PyDev dans Eclipse
nb_conda_kernels est recommandé si vous souhaitez entrer dans l'environnement virtuel avec jupyter
Si vous voulez créer un bot discord avec python, utilisons un framework
Si vous vous perdez avec les redirections HTTP 301 et 302
Que faire si vous recevez une erreur d'appel avec trop d'arguments d'entrée à faire et retourner dans un test de golang
Que faire si vous obtenez une erreur OpenSSL lors de l'installation de Python 2 avec pyenv
Que faire quand "Aucun noyau pour le langage python trouvé" apparaît dans Hydrogen
Que faire si vous obtenez "(35, 'Erreur de connexion SSL')" dans pycurl (l'un d'entre eux)
Que faire si vous obtenez une erreur lors de l'importation de matplotlib en Python (Mac)
Si vous obtenez l'erreur "la matrice de base est singulière à la précision de travail" dans GLPK
Je souhaite envoyer un message d'erreur en japonais avec le formulaire de changement de mot de passe django
Que faire si vous obtenez une erreur d'importation lors de l'importation de matplotlib avec Jupyter
Que faire si vous exécutez python sur IntelliJ et quittez avec une erreur
Comment obtenir plusieurs objets de modèle au hasard dans Django
Je veux faire la transition avec un bouton sur le ballon
Paramètres lorsque vous souhaitez exécuter python-mecab avec travis
Si vous souhaitez utiliser Cython, incluez également python-dev
Comment accéder avec cache lors de la lecture_json avec pandas
Lorsque vous souhaitez filtrer avec le framework Django REST
Je veux travailler avec un robot en python.
Lorsque vous voulez plt.save dans l'instruction for
Convertissez les variables numériques en variables catégorielles avec les pandas en définissant un seuil
Convertir 202003 en 2020-03 avec les pandas
Notez ce que vous voulez faire à l'avenir avec Razpai
Que faire lorsque swagger-codegen est terminé avec python et Erreur d'importation: aucun module nommé n'apparaît
Si vous voulez mettre un argument dans la fonction de fermeture et l'exécuter plus tard
Que faire si vous obtenez une erreur Impossible de récupérer le lien métallique pour le référentiel avec yum
Que faire si vous obtenez une erreur lors de l'exécution de "certbot renouveler" dans l'environnement CakePHP
Que faire si vous obtenez une erreur non définie lorsque vous essayez d'utiliser pip avec pyenv
[Python] Si vous souhaitez soudainement créer un formulaire de demande
Solution si vous obtenez une erreur de codage 0xxx ASCII avec un sur-ensemble