J'essaie d'utiliser les Pandas pivot_table pour déplacer des éléments de ligne sur mes réceptions en tant que colonnes, en ne laissant qu'une seule ligne par reçu. Mon principal défi est de nommer mes nouvelles colonnes en comptant les nombres et de les remplir de NaN.Tableau croisé dynamique Pandas - noms de colonne incrémentiels
Je suis en train de faire ceci:
customer_id receipt_id item_id
01 100 420
05 400 450
05 400 460
05 400 320
05 400 270
02 300 320
02 300 460
05 200 220
... ressembler à ceci:
customer_id receipt_id 1 2 3 4 n..
01 100 420 NaN NaN NaN
05 400 450 460 320 270
02 300 320 460 NaN NaN
05 200 220 NaN NaN Nan
J'ai essayé de le faire fonctionner, mais je ne suis pas près.
pt = pd.pivot_table(df, values=["item_id"], index=["customer_id", "receipt_id"], columns=["item_id"], fill_value="NaN").reset_index()
Merci Jezrael! Votre solution a fonctionné parfaitement. Sur les lignes de 33 millions, avec une moyenne de 2 articles par reçu, il a fonctionné sur 20 minutes en utilisant 58 Go de RAM. Certains reçus avaient jusqu'à 30 articles. J'ai laissé tomber toutes les colonnes numérotées> 8. – user6453877
Glad peut vous aider! Belle journée! – jezrael