我完全不知道如何為這個問題建立一個MWE,因為當我對資料框架進行切片時,這種行為就會發生,請看下面的控制臺輸出:
第一個切片,我的最后幾行有NaT。
第一個切片,我有NaT的最后幾行:
在[161]: df. iloc[3802:11775].astype({"date"/span>: "datetime64"})[["date"]
Out[161]。
日期
258 2014-09-14
259 2018-10-12
259 2018-10-12
259 2018-10-12
259 2018-10-12
.. ...
781 NaT
781 NaT
781 NaT
781 NaT
781 NaT
[7973 行 x 1 列]
如果我更新切片,從3803開始,效果很好:
如果我更新切片,從3803開始。
在 [162]: df. iloc[3803:11775].astype({"date"/span>: "datetime64"})[["date"]
Out[162]。
日期
259 2018-10-12
259 2018-10-12
259 2018-10-12
259 2018-10-12
259 2018-10-12
.. ...
781 2014-09-14 ...
781 201409-14
781 201409-14
781 201409-14
781 2014-09-14
[7972 行 x 1 列]
和id我把第一部分和最后一部分連接起來,因為我認為id3802的行可能有問題,它仍然作業:
在 [165]: pd.concat([df.iloc[3800:3803], df. iloc[11770:11775]].astype({"date"/span>: "datetime64"})[["date"]
出[165]。
日期
258 2014-09-14
258 2014-09-14
258 2014-09-14
781 201409-14
781 201409-14
781 201409-14
781 201409-14
781 201409-14
我不得不說,我已經使用pandas超過3年了,但在這里我完全迷失了。
編輯部
。在這個實驗室中,這個bug在pandas 1.3.0中是可見的,實際上在pandas 1.3.3中得到了修正
。uj5u.com熱心網友回復:
我無法重現你的錯誤:
我無法重現你的錯誤。
在 [31]: df = pd.read_csv("date_error.csv")
在[32]: df.iloc[3802:11775].astype({"date": "datetime64"})
Out[32]。
未命名。0日期
3802 258 2014-09- 14
3803 259 2018-10-12
3804 259 2018-10-12
3805 259 2018-10-12
3806 259 2018-10-12
... ... ...
11770 781 2014-09-14
11771 781 201409-14
11772 781 201409-14
11773 781 201409-14
11774 781 201409-14
[7973 行 x 2 列]
在[33]: df["date"].isna().any()
Out[33]。假的。
這就是說,我建議使用pd.to_datetime而不是astype()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/332418.html
標籤:
上一篇:加載檔案到Jupyter筆記本
