擅长:python、mysql、java
<p>我找到了一种更快的解决问题的方法,至少在实际的大型数据集上使用:
<code>df.set_index(KEY).to_dict()[VALUE]</code></p>
<p>50000行的证明:</p>
<pre><code>df = pd.DataFrame(np.random.randint(32, 120, 100000).reshape(50000,2),columns=list('AB'))
df['A'] = df['A'].apply(chr)
%timeit dict(zip(df.A,df.B))
%timeit pd.Series(df.A.values,index=df.B).to_dict()
%timeit df.set_index('A').to_dict()['B']
</code></pre>
<p>输出:</p>
<pre><code>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)
</code></pre>