我有一个 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 来说效率不高(非常耗时),并且还会向我发送回值的索引,这是我不想要的。
有什么建议吗?
谢谢
最佳答案
您可以在此处使用agg
:
df.groupby('k').v.agg(list).to_dict()
{'A': [1, 3], 'B': [2, 5], 'C': [8]}
关于python - 从 panda 系列创建具有多个值的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52500666/