簡體   English   中英

強制將 pandas dataframe 列強制轉換為 int64 類型

[英]Force coerce pandas dataframe column to int64 type

我正在處理 TB 級的輕度嘈雜數據,這些數據被分解為約 20 GB 的數據幀。 可能每 200 萬行中有 20 行在某些列中有錯誤數據。 我想要將 pandas 數據幀列快速強制類型轉換為int ,僅將無法強制為int的值清零(NaN) (不要將 null 排除在整行之外)

使用pd.to_numeric(df, errors='coerce')我已經能夠刪除字符串。 然后我的問題是使用.astype(pd.Int64Dtype())

這已經多次給出錯誤

"TypeError: cannot safely cast non-equivalent float64 to int64"
  • 一次是由於 0.5 的存在,另一次是由於存在高於 Int64 容量的 21 位代碼。

解決這個問題最有效的方法是什么

您是否嘗試添加downcast參數:

df[col] = pd.to_numeric(df[col], errors='coerce', downcast='integer')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM