Mam tabelę w następującym formacie:
user_id total_spent purchase_date purchase_id aisle department item_cost
33 279.3 1/29/18 26 gn 1 25.7
33 279.3 1/29/18 26 aj 2 17
33 279.3 1/29/18 26 bs 2 31.7
33 279.3 1/29/18 26 jt 3 30
33 279.3 1/29/18 26 tj 3 8.1
33 279.3 1/29/18 26 ga 4 60.6
33 279.3 1/29/18 26 tw 4 35.9
33 279.3 1/29/18 26 aw 5 34.1
33 279.3 1/29/18 26 te 5 36.2
26 331.7 11/15/17 85 je 1 93.5
26 331.7 11/15/17 85 tg 2 21.1
26 331.7 11/15/17 85 ds 2 23.2
26 331.7 11/15/17 85 jw 3 48.8
26 331.7 11/15/17 85 df 3 10.2
26 331.7 11/15/17 85 lj 4 56.2
26 331.7 11/15/17 85 oa 4 7
26 331.7 11/15/17 85 aw 5 32.4
26 331.7 11/15/17 85 cm 5 39.3
I chciałbym przekonwertować to na każdy wartość działu jako nazwa kolumny lubić department_1, department_2 itp. Tak jak w przypadku przejścia i kosztu przedmiotu: dept_aisle_gn, dept_aisle_df itp., a następnie odpowiadający koszt jako kolumny.
Innymi słowy, na koniec chciałbym mieć 2 wiersze dla 2 identyfikatorów_użytkowników, a pozostałe informacje będą wyświetlane w kolumnach, a nie w wierszach.
Pierwotnie wyciągnąłem dane z przesunięcia ku czerwieni i będę nim manipulować przy pomocy Pandek Pythona. Niestety, tabela przestawna lub przestawna nie działa w trybie przesunięcia ku czerwieni. Próbowałem pivas pivot, ale wydaje się nie działa dla mnie.
Dziękuję Ci.
Odpowiedzi:
1 dla odpowiedzi № 1pd.pivot_table
popiera to.
pd.pivot_table(df,
index=["user_id", "total_spent", "purchase_date", "purchase_id"],
columns=["aisle", "department"],
values="item_cost",
aggfunc=np.sum,
fill_value=0)
# aisle aj aw bs cm df
# department 2 5 2 5 3
# user_id total_spent purchase_date purchase_id
# 26 331.7 11/15/17 85 0 32.4 0.0 39.3 10.2
# 33 279.3 1/29/18 26 17 34.1 31.7 0.0 0.0
# aisle ds ga gn je jt
# department 2 4 1 1 3
# user_id total_spent purchase_date purchase_id
# 26 331.7 11/15/17 85 23.2 0.0 0.0 93.5 0
# 33 279.3 1/29/18 26 0.0 60.6 25.7 0.0 30
# aisle jw lj oa te tg tj
# department 3 4 4 5 2 3
# user_id total_spent purchase_date purchase_id
# 26 331.7 11/15/17 85 48.8 56.2 7 0.0 21.1 0.0
# 33 279.3 1/29/18 26 0.0 0.0 0 36.2 0.0 8.1
# aisle tw
# department 4
# user_id total_spent purchase_date purchase_id
# 26 331.7 11/15/17 85 0.0
# 33 279.3 1/29/18 26 35.9