按列显示所有分组

时间:2018-10-19 03:26:28

标签: python-3.x pandas

'''
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)

上面的代码给了我col1col2,如何用col3col1显示col2的结果?

2 个答案:

答案 0 :(得分:3)

可以使用groupby.agg

的IIUC
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)

您可以将agglambda函数一起使用,以列出两个列。

dfQ = df.groupby('col1').agg(lambda x: list(x)).reset_index()