Bonjour,
j’essaye d’appliquer la formation à un sujet au boulot.
Je dois construire un tableau croisé dynamique. Je le fais sans problème avec la fonction pivot_table() appliqué à un dataframe contenant des données sur des commandes.
Une des variables « Point de vente » donne un code de l’equipe qui a passé la commande, cette donnée étant « native » dans le fichier_csv que je charge dans un dataframe, sur lequel j’applique pivot_table.
Une autre variable du dataframe est « Canal », qui est une donnée que je calcule et ajoute au dataframe chargé par read_csv (dit autrement, je maitrise son format)
Quand j’applique pivot_table() sur mon dataframe avec aggfunc=‹ size › (ça fait pareil si je mets aggfunc=len) et index= « Canal », ça me donne bien le tableau croisé dynamique (comme le ferait Excel):
test_pivot=pd.pivot_table(fichier_nettoye_canaux_principaux
, index = ["Canal"]
, values=["Date de depot de la commande - format date"]
, columns = ["Mois","Variable 1","Variable 2"]
, aggfunc = "size")
display(test_pivot)
donne:
Mois 7 8 9
Variable1 0 1 0 1 0 1
Variable 2 0 1 1 0 1 1 0 1 1
Canal
Canal 1 10805 1623 3851 13307 1621 6507 12958 1465 4798
Canal 2 14009 2858 4423 18141 3458 6079 19829 3569 6552
Canal 3 15616 2873 6426 17453 2938 8612 18305 3108 8391
En revanche, lorsque je l’applique sur une autre variable, par exemple index=« Point de vente », je me retrouve avec un TcD plein de pourcentages. Je comprends pas ce comportement différent.
test_pivot=pd.pivot_table(fichier_nettoye_canaux_principaux
, index = ["Point de vente - code"]
, values=["Date de depot de la commande - format date"]
, columns = ["Mois","Variable 1","Variable 2"]
, aggfunc = "size")
display(test_pivot)
donne:
Mois 7 8 9
Variable 1 0 1 0 1 0 1
Variable 2 0 1 1 0 1 1 0 1 1
Point de vente - code
01PDV 1 16% 1% 5% 19% 3% 6% 18% 2% 5%
01PDV 2 14% 2% 5% 14% 2% 2% 20% 3% 5%
01PDV 3 27% 1% 9% 40% 3% 10% 34% 1% 11%
01PDV 4 10% 2% 4% 21% 1% 7% 20% 1% 8%
Quelqu’un a une idée?