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

Python:带时区datetime列转date失败,求解决方法

解决方法

问题根源

你的date列是object类型(字符串),而.dt访问器仅适用于datetime64类型的列,所以直接调用.dt.strftime会报错。需要先把字符串列转换为datetime类型,再提取日期部分。

具体步骤

  1. 将字符串列转换为datetime类型
    Pandas的pd.to_datetime()可以自动识别你这种带T和Z后缀的ISO格式时间字符串,执行以下命令:

    import pandas as pd
    df['date'] = pd.to_datetime(df['date'])
    

    如果存在无效的时间字符串,可以添加errors='coerce'参数将无效值转为NaT(缺失值),方便后续处理:

    df['date'] = pd.to_datetime(df['date'], errors='coerce')
    
  2. 提取日期部分
    转换为datetime类型后,有两种方式得到你想要的YYYY-MM-DD格式:

    • 方式一:转为字符串格式(推荐,保持统一的字符串类型)
      df['date'] = df['date'].dt.strftime('%Y-%m-%d')
      
    • 方式二:转为Python原生date对象
      df['date'] = df['date'].dt.date
      

一步到位写法

如果不想分步操作,可以直接合并为一行代码:

df['date'] = pd.to_datetime(df['date']).dt.strftime('%Y-%m-%d')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 08:36:38