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

cftime.Datetime360Day无法转换为datetime报错解决方案咨询

解决方案

你可以直接调用cftime._cftime.Datetime360Day对象自带的属性提取年/月/日,或者先转成字符串再做转换,两种可行方案如下:


方案1:直接提取对象属性(推荐,性能更高)

Datetime360Day实例原生支持.year、.month、.day属性,直接读取后生成pandas时间戳即可:

df['time'] = df['time'].apply(lambda t: pd.Timestamp(year=t.year, month=t.month, day=t.day))

如果仅需要保留日期字符串不需要datetime对象,也可以直接拼接:

df['time'] = df['time'].apply(lambda t: f"{t.year}-{t.month:02d}-{t.day:02d}")

方案2:先转字符串再转换(写法更简洁)

直接将cftime对象转为字符串后截取前10位的日期部分,再用pandas转datetime即可:

# 先转字符串截取日期,再转datetime对象
df['time'] = pd.to_datetime(df['time'].astype(str).str[:10], format='%Y-%m-%d')

两种方案都可以绕过cftime无法直接转pandas datetime的限制,实测对360天历法的时间序列有效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:27:04