199 votes

Nommer les colonnes retournées dans une fonction d'agrégation Pandas ?

J'ai des difficultés avec la fonctionnalité groupby de Pandas. J'ai lu la documentation mais je n'arrive pas à comprendre comment appliquer des fonctions d'agrégation à plusieurs colonnes y ont des noms personnalisés pour ces colonnes.

Ce résultat est très proche, mais la structure de données renvoyée comporte des en-têtes de colonnes imbriquées :

data.groupby("Country").agg(
        {"column1": {"foo": sum()}, "column2": {"mean": np.mean, "std": np.std}})

(par exemple, je veux prendre la moyenne et la std de la colonne2, mais retourner ces colonnes en tant que "mean" et "std").

Qu'est-ce que je manque ?

1voto

saneryee Points 91

Comme ce type de dataframe, il y a deux niveaux de nom de colonne :

 shop_id  item_id   date_block_num item_cnt_day       
                                  target              
0   0       30          1            31               

nous pouvons utiliser ce code

df.columns = [col[0] if col[-1]=='' else col[-1] for col in df.columns.values]

Le résultat est le suivant :

 shop_id  item_id   date_block_num target              
0   0       30          1            31

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X