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

Python DataFrame处理Date-Time列时如何跳过字符串值执行格式转换

实现方案

这个需求完全可以实现,只需要在原本的apply逻辑中新增类型判断,跳过字符串类型的单元格即可。原代码直接调用strftime方法会在字符串类型单元格上报错,修改后的代码如下:

import datetime
import pandas as pd
# 方案1:跳过所有字符串类型,其余类型执行格式化
df['Date-Time'] = df['Date-Time'].apply(lambda x: x.strftime('%d/%m/%Y %H:%M:%S') if not isinstance(x, str) else x)

如果要更严谨,避免其他非日期非字符串类型的数据报错,可仅对明确的日期时间类型执行转换:

# 方案2:仅对datetime/Timestamp类型执行格式化,其余类型保持原值
df['Date-Time'] = df['Date-Time'].apply(lambda x: x.strftime('%d/%m/%Y %H:%M:%S') if isinstance(x, (datetime.datetime, pd.Timestamp)) else x)

补充说明

  • 如果后续需要统一整列的格式,可以配合pd.to_datetime(df['Date-Time'], errors='coerce')先把可转换的字符串批量转成日期类型,再统一格式化,异常值会自动置为空。
  • 上述代码兼容pandas自带的Timestamp日期类型,无需额外调整逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 16:27:00