Pandas:将数据帧转换为列表的dict

2021-04-11 15:46:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个数据帧:

col1, col2
A      0
A      1
B      2
C      3

我想要这个:

^{pr2}$

我试过了:

df.set_index('col1')['col2'].to_dict()

但这并不完全正确。我遇到的第一个问题是“A”被重复了,我最终得到的是A:1(0被覆盖)。如何修复?在

2条回答
网友
1楼 ·

你可以在groupby上使用字典理解。在

>>> {idx: group['col2'].tolist() 
     for idx, group in df.groupby('col1')}
{'A': [0, 1], 'B': [2], 'C': [3]}
网友
2楼 ·

解决方案

df.groupby('col1')['col2'].apply(lambda x: x.tolist()).to_dict()

{'A': [0, 1], 'B': [2], 'C': [3]}

相关问题