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

Dataframe列类型转换报错:字符串列转datetime触发TypeError

批量转换DataFrame日期字符串为datetime对象的解决方案

首选方案:使用pandas内置的pd.to_datetime()

这是矢量化操作,无需循环,效率远高于逐元素处理,是pandas官方推荐的方法:

  • 自动推断日期格式(大部分场景下可用):

    import pandas as pd
    df['DateTime'] = pd.to_datetime(df['DateTime'])
    
  • 指定固定格式(如果自动推断出错,或想提升处理速度):
    把format参数设置为你的日期字符串对应的格式(比如%Y-%m-%d %H:%M:%S代表"年-月-日 时:分:秒"):

    df['DateTime'] = pd.to_datetime(df['DateTime'], format='%Y-%m-%d %H:%M:%S')
    
  • 处理无效日期值:
    如果列里有不符合格式的字符串,可以用errors参数控制处理逻辑:

    • errors='coerce':将无效值转为NaT(pandas的缺失日期类型)
    • errors='ignore':保留原字符串不转换
    df['DateTime'] = pd.to_datetime(df['DateTime'], format='%Y-%m-%d %H:%M:%S', errors='coerce')
    

备选方案:使用apply()(仅适用于特殊自定义场景)

如果必须用datetime.strptime处理,可以通过apply()隐式遍历,但效率低于pd.to_datetime(),仅推荐在有特殊格式需求时使用:

from datetime import datetime
df['DateTime'] = df['DateTime'].apply(lambda x: datetime.strptime(x, '%Y-%m-%d %H:%M:%S'))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 01:35:37