从具有多个值的熊猫系列创建字典

时间:2018-09-25 14:30:27

标签: python python-3.x pandas dictionary

我有一个pd数据框,如下所示:

df=pd.DataFrame([['A',1],['A',3],['B',2],['B',5],['C',8]],columns=['k','v'])

然后我想创建以下字典:

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

我目前正在使用

from collections import defaultdict


my_dict=defaultdict(list)

for key in df.k:
    my_dict[key].append(df['v'][df['k']==key])

但是对于大型df来说效率不高(非常耗时),并且还会将不需要的值发送给我。

有什么建议吗?

谢谢

1 个答案:

答案 0 :(得分:3)

您可以在此处使用agg

df.groupby('k').v.agg(list).to_dict()

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