对pandas DataFrame数据进行相同类型的计算时,对比使用向量化方式与for循环方式的时间开销差异。
TLDR
浮点数计算速度:apply比for循环快4.8倍,向量化比for循环快6900倍。
字符串计算速度:apply比for循环快5.0倍,向量化比for循环快580倍。
因此建议尽量避免使用for循环的方式处理dataframe数据。
一、测试环境:
Apple M2,16GB,SSD
python 3.11.7
pandas 2.1.4
二、求和两列浮点数
用不同的内存对象计算两列之和(new_col=A+B),比较所消耗的时间,列A和列B都是1~100之间的浮点数。
向量化速度提升倍数:
apply比for循环提升4.8倍左右,向量化比for循环提升3000~9000倍(平均6900倍)。
三、字符串连接
用不同的内存对象将两列字符串连接,比较所消耗的时间,列A和列B都是8字节的字符串。
向量化速度提升倍数:
apply比for循环提升5.0倍左右,向量化比for循环提升430~650倍(平均580倍)。
欢迎转载
请保留原始链接:https://bjzhanghao.com/p/3335
请保留原始链接:https://bjzhanghao.com/p/3335