You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pandas使用astype("datetime64")转换日期结果不一致且未抛错问题

我完全不知道如何构建该问题的最小可复现示例(MWE),因为该异常行为仅在对DataFrame进行切片时出现,控制台输出如下:

第一次切片时,末尾行返回NaT:

In [161]: df.iloc[3802:11775].astype({"date": "datetime64"})[["date"]]
Out[161]:
          date
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 rows x 1 columns]

若将切片起始位置调整为3803,转换结果正常:

In [162]: df.iloc[3803:11775].astype({"date": "datetime64"})[["date"]]
Out[162]:
          date
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 2014-09-14
781 2014-09-14
781 2014-09-14
781 2014-09-14

[7972 rows x 1 columns]

我怀疑是索引3802行存在异常,因此将首尾片段拼接后再转换,结果仍然正常:

In [165]: pd.concat([df.iloc[3800:3803], df.iloc[11770:11775]]).astype({"date": "datetime64"})[["date"]]
Out[165]:
          date
258 2014-09-14
258 2014-09-14
258 2014-09-14
781 2014-09-14
781 2014-09-14
781 2014-09-14
781 2014-09-14
781 2014-09-14

我已经使用pandas超过3年,完全无法解释该异常现象。

编辑补充

我已将对应Series上传至公开代码片段平台,该bug可在安装pandas 1.3.0版本的在线协作环境中复现,且该问题在pandas 1.3.3版本中已修复。


内容的提问来源于stack exchange,提问作者ClementWalter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 11:48:02