我觉得我应该澄清一个有趣的观察。
我希望 pandas 切片操作应该比压缩数据帧的列更快,但是在这两个操作上运行 %timeit 时,zip 操作更快......
import pandas as pd, numpy as np
s = pd.DataFrame({'Column1':range(50), 'Column2':np.random.randn(50), 'Column3':np.random.randn(50)})
在跑步时
%timeit s[['Column1','Column3']].loc[30].values
每个环路 1.06 ms ± 145 μs(平均 7 次运行的标准±,每次 1000 次循环(
%timeit dict(zip(s['Column1'],s['Column3']))[30]
每个循环 53.7 μs ± 6.07 μs(平均 7 次运行的标准±,每次 10000 次循环(
这说明熊猫比使用 zip 功能慢得多,对吧?我相信,可能只是因为它的易用性更好。
应用映射操作会更快吗?
Zip 经过优化,可在处理器缓存中运行。它非常快,就像一般的迭代工具一样。