[英]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.