Renommer les colonnes de résultat de Pandas agrégation (“FutureWarning: à l'aide d'un dict avec le renommage est obsolète”)

Je vais essayer de faire des agrégations sur une pandas bloc de données. Voici un exemple de code:

import pandas as pd

df = pd.DataFrame({"User": ["user1", "user2", "user2", "user3", "user2", "user1"],
                  "Amount": [10.0, 5.0, 8.0, 10.5, 7.5, 8.0]})

df.groupby(["User"]).agg({"Amount": {"Sum": "sum", "Count": "count"}})

Out[1]: 
      Amount      
         Sum Count
User              
user1   18.0     2
user2   20.5     3
user3   10.5     1

Qui génère le message d'avertissement suivant:

FutureWarning: à l'aide d'un dict avec le renommage est obsolète et sera
supprimée dans une version future de retour super(DataFrameGroupBy,
l'auto).agrégation(arg, *args, **kwargs)

Comment puis-je éviter cela?

  • J'aimerais savoir pourquoi c'est amorti (je suis sûr qu'il y est une bonne raison). Quelqu'un aurait-il un lien vers une discussion sur elle?
  • Pour se concentrer sur les mots clés de la solution plutôt que de simplement l'existant avertissement, je l'ai rebaptisée "renommer les colonnes de résultat de l'agrégation" et étiqueté. Maintenant, les gens pourraient même trouver cette question 🙂 avant de (disons) de la pas-si-canoniqueNommage des colonnes retournées dans les Pandas fonction d'agrégation?
  • J'espère que ce sera abordée dans le github.com/pandas-dev/pandas/issues/18366
  • Comment serait-il si je ne fais pas un "groupe", mais je suis en train de faire un "pivot" à la place?
  • Voir les pandas 0.25.0 agrégation de reclassement