簡體   English   中英

應用(列表)到熊貓中的多個列

[英]apply(list) to multiple columns in pandas

我目前有一個看起來像這樣的dataframe

df = pd.DataFrame({'A': [1,1,2,2,2,2,3],
                   'B':['a','b','c','d','e','f','g'],
                   'C':['1','2','3','4','5','6','7']})

df2 = df.groupby('A')['B'].apply(list).reset_index()產生這個:

   A             B
0  1        [a, b]
1  2  [c, d, e, f]
2  3           [g]

我怎樣才能生產這個?

   A             B            C
0  1        [a, b]       [1, 2]
1  2  [c, d, e, f] [3, 4, 5, 6]
2  3           [g]          [7]

你可以這樣做

df.groupby('A', as_index=False).agg(B=("B", list), C=("C", list))
   A             B             C
0  1        [a, b]        [1, 2]
1  2  [c, d, e, f]  [3, 4, 5, 6]
2  3           [g]           [7]

或等效地

pd.pivot_table(data=df, index="A", values=["B", "C"], aggfunc=list).reset_index()

利用:

df.groupby('A', as_index=False).agg(list)

這給了你:

   A             B             C
0  1        [a, b]        [1, 2]
1  2  [c, d, e, f]  [3, 4, 5, 6]
2  3           [g]           [7]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM