首頁>技術>

讓我們來做這樣一個處理,如果某一列的值小於.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的一萬九千都倍。

17
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 機試小課堂丨資料結構周·例題講解①《二叉樹遍歷》