我有一个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来说效率不高(非常耗时),并且还会将不需要的值发送给我。
有什么建议吗?
谢谢
答案 0 :(得分:3)
您可以在此处使用agg
df.groupby('k').v.agg(list).to_dict()
{'A': [1, 3], 'B': [2, 5], 'C': [8]}