让我们来做这样一个处理,如果某一列的值小于.5就把值统一替换为0,否则就替换为100. 原创不易,喜欢就转发和给个赞吧。 首先创建一个dataframe: import pandas as pdimport numpy as npimport timedf = pd.DataFrame(np.random.rand(100000, 4), columns=['A', 'B', 'C', 'D'])print(df) 数据输出如下: 第一种方法:iterrows() 总共耗时8.12秒,iterrows()遍历确实比较慢,让人等得着急啊! 第二种方法:iloc 总共耗时2.76秒,是iterrows的2.9倍,速度提高了很多。 第三种方法:apply函数 总共耗时52.2毫秒,是iterrows的155倍。 第四种方法:numpy的where, 使用前先导入numpy. 总共耗时778微秒,处理速度是iterrows的10437倍,快到让人不敢相信。 本人觉得这个速度已经达到极致了,那还有没有更快的方法呢?那我们在用numpy的where(.values)来看看,结果简直不可思议只用了426微妙,速度快的离奇,处理速度是iterrows的一万九千都倍。 |
|