/ / pandy wiersze jako nazwy kolumn - zmiana kształtu ramki danych - python, pandy, pivot, tabela przestawna

wiersze pandy jako nazwy kolumn - zmiana kształtu ramki danych - python, pandy, pivot, tabela przestawna

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 № 1

pd.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