[英]Create dictionary from panda series with multiple values
I have a pd dataframe as follow: 我有一个pd数据框如下:
df=pd.DataFrame([['A',1],['A',3],['B',2],['B',5],['C',8]],columns=['k','v'])
And from I would like to create the following dictionary: 从我想创建以下字典:
{'A':[1,3],
'B':[2,5],
'C':[8]
}
I am currently doing it with: 我目前正在这样做:
from collections import defaultdict
my_dict=defaultdict(list)
for key in df.k:
my_dict[key].append(df['v'][df['k']==key])
But it is not efficient (very time consuming) for large df and also sends me back the index of the values, which I do not want. 但是对于大型df而言效率不高(非常耗时),并且还会将值返回给我,这是我不想要的。
Any suggestions? 有什么建议么?
Thanks 谢谢
你可以在这里使用agg
:
df.groupby('k').v.agg(list).to_dict()
{'A': [1, 3], 'B': [2, 5], 'C': [8]}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.