首页 > 解决方案 > 如何将 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

所以,结果,我想要以下dict

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

标签: pythonpandas

解决方案


合并值:

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]}

推荐阅读