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

将dtype('O')日期转换为DD/MM/YYYY格式的Python技术求助

解决方法

步骤1:正确将字符串列转换为datetime类型

你的日期数据格式是YYYY-MM-DD HH:MM:SS(比如1988-10-24 00:00:00),之前用%m/%d/%Y匹配肯定报错,因为格式不对应。可以用两种方式转换:

# 方式1:指定精确格式(推荐,速度更快)
tabela['dt_nasc'] = pd.to_datetime(tabela['dt_nasc'], format='%Y-%m-%d %H:%M:%S')

# 方式2:让pandas自动推断格式(适合格式统一的场景,更省心)
tabela['dt_nasc'] = pd.to_datetime(tabela['dt_nasc'], errors='coerce')
# errors='coerce'会把无法转换的无效值转为NaT(缺失日期),避免报错

步骤2:转换为DD/MM/YYYY格式输出

转换为datetime类型后,pandas默认显示为YYYY-MM-DD,要得到DD/MM/YYYY格式,有两种选择:

选项A:生成新的字符串列(永久修改为字符串格式)

如果需要将日期以字符串形式存储为DD/MM/YYYY,用dt.strftime():

# 添加新列存储格式化后的日期
tabela['dt_nasc_ddmmyyyy'] = tabela['dt_nasc'].dt.strftime('%d/%m/%Y')
# 或者直接替换原列
# tabela['dt_nasc'] = tabela['dt_nasc'].dt.strftime('%d/%m/%Y')

选项B:仅修改显示格式(保留datetime类型)

如果只是需要在查看表格时显示为DD/MM/YYYY,但仍保留datetime的计算功能,设置pandas的全局显示格式:

pd.options.display.date_format = '%d/%m/%Y'

之后查看tabela时,datetime列就会自动以DD/MM/YYYY格式展示。

你之前代码的问题说明

  1. 第一次代码报错:format='%m/%d/%Y'和你的实际数据格式YYYY-MM-DD HH:MM:SS不匹配,导致解析失败。
  2. 第二次代码:函数convert_to_date内部的tabela.loc[:, 'dt_nasc'] = ...缩进错误,代码根本没执行;而且就算成功转换为datetime类型,pandas默认显示格式不是DD/MM/YYYY,所以你看不到预期效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 00:01:09