python-如何将 pandas DataFrame的行合并到列表中,并将此DataFrame转换成dict

我有一个DataFrame

  col1  col2
 0  a   1
 1  b   2
 2  c   3
 3  a   4
 4  b   5

我希望将其转换如下:

   col1  col2
0   a   [1, 4]
1   b   [2, 5]
2   c   [3]

这样col1的相似元素是唯一的,并且col2中的对应值被合并到列表中.

这是第一部分.第二个是:如何将此DataFrame导出到python dict中?

因此,因此,我想提出以下意见

{'a': ['1', '4'], 'b': ['2', '5'], 'c': ['3']}

最佳答案

合并值:

df.groupby('col1').col2.apply(list)
#col1
#a    [1, 4]
#b    [2, 5]
#c       [3]
#Name: col2, dtype: object

转换成字典:

df.groupby('col1').col2.apply(list).to_dict()
# {'a': [1, 4], 'b': [2, 5], 'c': [3]}