'''
groupby row, concat list
'''
d = {'col1': [33, 33, 33, 34, 34, 34], 'col2': ["hello", "hello1", "hello2", "hello3", "hello4", "hello5"],
'col3': [1, 2, 3, 4, 5, 6]}
df = pd.DataFrame(data=d)
dfQ = df.groupby('col1')['col2'].apply(list).reset_index()
print(dfQ)
上面的代码给了我col1
和col2
,如何用col3
和col1
显示col2
的结果?
答案 0 :(得分:3)
可以使用groupby.agg
df1 = df.groupby('col1', as_index=False).agg(list)
print (df1)
col1 col2 col3
0 33 [hello, hello1, hello2] [1, 2, 3]
1 34 [hello3, hello4, hello5] [4, 5, 6]
答案 1 :(得分:1)
您可以将agg
与lambda
函数一起使用,以列出两个列。
dfQ = df.groupby('col1').agg(lambda x: list(x)).reset_index()