In [6]: df = pd.DataFrame(randint(0,10,10000).reshape(5000,2),columns=list('AB'))
In [7]: %timeit dict(zip(df.A,df.B))
1000 loops, best of 3: 1.27 ms per loop
In [8]: %timeit pd.Series(df.A.values,index=df.B).to_dict()
1000 loops, best of 3: 987 us per loop
100 loops, best of 3: 7.04 ms per loop # WouterOvermeire
100 loops, best of 3: 9.83 ms per loop # Jeff
100 loops, best of 3: 4.28 ms per loop # Kikohs (me)
速度比较(使用Wouter方法)
我找到了一种更快的解决问题的方法,至少在实际的大型数据集上使用:
df.set_index(KEY).to_dict()[VALUE]
50000行的证明:
输出:
TL;博士
很长时间
解释解:
dict(sorted(df.values.tolist()))
给出:
[出局]:
尝试:
[出局]:
然后可以选择:
或:
[出局]:
最后,将包含2个元素的列表转换为dict
[出局]:
相关的
回复@sbradbio评论:
如果某个键有多个值,并且您希望保留所有这些值,则这不是最有效的方法,但最直观的方法是:
[出局]:
相关问题 更多 >
编程相关推荐