首頁 >後端開發 >Python教學 >如何使用'dtype”和'low_memory”選項來最佳化 Pandas'read_csv”?

如何使用'dtype”和'low_memory”選項來最佳化 Pandas'read_csv”?

Susan Sarandon
Susan Sarandon原創
2024-11-08 18:08:02337瀏覽

How to Optimize Pandas `read_csv` with `dtype` and `low_memory` Options?

Pandas read_csv: low_memory 和dtype 選項

使用pd.read_csv('somefile.csv') 時,您可能會遇到DtypeWarning 指示列具有混合類型。指定 dtype 選項可以防止此錯誤並提高效能。

了解 low_memory 選項

已棄用的 low_memory 選項實際上不會影響行為。但是,它與 dtype 選項相關,因為猜測每列的 dtypes 可能會佔用大量記憶體。

防止資料不符

如果最後一行您的檔案包含意外數據,指定資料類型可能會導致載入過程失敗。例如,如果指定為整數的列包含類似「foobar」的字串值,則載入將中斷。

指定 dtypes

要避免此類錯誤,請明確讀取 CSV 檔案時指定 dtypes。使用 dtype 選項為每一列分配正確的資料類型,從而實現高效解析並減少記憶體消耗。

可用的 dtypes

Pandas 支援各種 dtypes,包括:

  • Numpy模式種:float、int、bool、timedelta64[ns]、datetime64[ns]
  • Pandas 擴充:

    • datetime64 [ns, ](時區感知時間戳記)
    • 類別(枚舉)
    • period[](時間段)
    • 稀疏(有漏洞的資料)
    • 間隔(索引)
    • 可空整數(Int8、Int16、Int32、Int64、UInt8、UInt16、UInt32、UInt64)
    • 字串(用於運算字串)
    • boolean (nullable bool)

陷阱

  • 設定 dtype=object 會靜音警告,但不會提高記憶體效率。
  • 設定 dtype=unicode 沒有任何效果,因為 numpy 將 unicode 表示為物件。
  • 轉換器可用於處理意外數據,但由於 Pandas 的單一進程,效率較低大自然。

以上是如何使用'dtype”和'low_memory”選項來最佳化 Pandas'read_csv”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn