簡體   English   中英

長數據框的Python Pandas超出日期時間時間戳錯誤

[英]Python Pandas out of bounds datetime timestamp error for long dataframe

我有一個形狀為(500000,70)的數據框df ,其中包括無效日期之類的幾列,如4000-01-01 00:00:00 在此數據框的較小版本中,我嘗試了

df["date"] = df["date"].astype(str)
df["date"] = df["date"].replace('4000-01-01 00:00:00', pd.NaT)

效果很好。 還有版本

df["date"] = pd.to_datetime(df["date"].replace("4000-01-01 00:00:00",pd.NaT))

工作。 對於長數據框版本,我收到以下錯誤

OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 4000-01-01 00:00:00

有什么建議如何以一種優雅的方式解決這個問題,或者可能是什么問題?

謝謝。

如果向to_datetime函數添加參數errors='coerce'to_datetime為所有不可解析的日期時間返回NaT

df["date"] = pd.to_datetime(df["date"], errors='coerce')

該錯誤是因為:

In [332]: pd.Timestamp.max
Out[332]: Timestamp('2262-04-11 23:47:16.854775807')

日期的上限是這個。 而且您的值超出了范圍,因此超出了OutOfBoundsError。

暫無
暫無

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

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