pandas是資料科學和資料競賽中常見的庫,我們使用pandas可以進行快速讀取資料、分析資料、構造特徵。但pandas在使用上有一些技巧和需要注意的地方,如果你沒有合適的使用,那麼pandas可能執行速度非常慢。本文將整理一些pandas使用技巧,主要是用來節約記憶體和提高**速度。
在pandas中內建了眾多的資料讀取函式,可以讀取眾多的資料格式,最常見的就是read_csv函式從csv檔案讀取資料了。但read_csv在讀取大檔案時並不快,所以建議你使用read_csv讀取一次原始檔案,將dataframe儲存為hdf或者feather格式。一般情況下hdf的讀取比讀取csv檔案快幾十倍,但hdf檔案在大小上會稍微大一些。
建議1:盡可能的避免讀取原始csv,使用hdf、feather或h5py格式檔案加快檔案讀取;在某些定長的字元資料的讀取情況下,read_csv讀取速度比codecs.readlines慢很多倍。同時如果你想要**盡量占用較小的記憶體,可以在read_csv時就設定好每類的型別。
itertuples和iterrows都能實現按行進行迭代的操作,但在任何情況下itertuples都比iterrows快很多倍。
建議2:如果必須要要用iterrows,可以用itertuples來進行替換。在很多情況下會遇到groupby之後做一些統計值計算,而如果用內建函式的寫法會快很多。
這一部分的統計資料**
由於pandas的一些操作都是單核的,往往浪費其他核的計算時間,因此有一些第三方庫對此進行了改進:
modin:對讀取和常見的操作進行並行;
建議4:如果能並行就並行,用第三方庫或者自己手寫多核計算。
建議5:在優化的過程中可以按照自己需求進行優化**,寫**盡量避免迴圈,盡量寫能夠向量化計算的**,盡量寫多核計算的**。pandas官方也寫了一篇效能優化的文章,非常值得閱讀:
常見的web效能優化方法
function mycallback info html cb返回的內容 mycallback hello world 像以上這種方式直接在頁面上寫 這樣乙個選擇符,如果是從右往左解析則效率會很高,因為第乙個 id選擇基本上就把查詢的範圍限定了,但實際上瀏覽器對選擇符的解析是從右往左進行的。如上面...
常見的效能優化
從資源請求數量 執行效率兩個角度來考慮 dom結構 樣式表放在頭部,防止白屏和閃屏 js指令碼放在底部或非同步獲取,防止阻塞資源載入 使用語義化標籤,優化精簡dom結構 減少dom操作頻率 減少重繪與回流 js指令碼 優化指令碼結構,移除重複的指令碼 模組就近載入 cmd 按需載入載入元件和路由 懶...
pandas 常見的統計方法
pandas 常見的統計方法方法 說明count 非 na 值的數量 describe 針對 series 或 df 的列計算匯 計 min max 最小值和最大值 argmin argmax 最小值和最大值的索引位置 整數 idxmin idxmax 最小值和最大值的索引值 quantile 樣本...