比较拉链操作与熊猫切片操作



我觉得我应该澄清一个有趣的观察。

我希望 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 经过优化,可在处理器缓存中运行。它非常快,就像一般的迭代工具一样。

最新更新