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

如何将int64类型YYYYMMDD格式的dataframe列转换为YYYY/MM/DD datetime格式

实现步骤

你可以直接使用pandas内置的to_datetime方法完成转换,注意:datetime类型本身没有固定的字符串显示格式,格式仅在你需要输出为字符串时指定,转换为datetime类型后可直接用于时间计算、筛选等操作。

基础转换(转datetime类型)

假设你的DataFrame名称为df,存储int类型日期的列名为date_int:

# 指定format参数匹配你现有的YYYYmmdd格式,比自动识别效率高很多,尤其数据量大时优势明显
df['date'] = pd.to_datetime(df['date_int'], format='%Y%m%d')

如果你的数据中存在不符合格式的异常值,可以增加errors参数避免报错:

# 不符合格式的值会被转为NaT(时间类型的空值)
df['date'] = pd.to_datetime(df['date_int'], format='%Y%m%d', errors='coerce')

输出为2018/05/31格式的字符串

如果需要将日期以年/月/日的格式存储为字符串,可在转成datetime类型后调用strftime方法:

df['date_str'] = df['date'].dt.strftime('%Y/%m/%d')

完整示例

import pandas as pd

# 构造示例数据
df = pd.DataFrame({
    'date_int': [20180531, 20190615, 20221201, 99999999] # 最后一个为异常值示例
})

# 转换为datetime类型
df['date'] = pd.to_datetime(df['date_int'], format='%Y%m%d', errors='coerce')

# 生成指定格式的字符串列
df['date_formatted'] = df['date'].dt.strftime('%Y/%m/%d')

print(df)

运行后输出结果如下:

date_intdatedate_formatted
201805312018-05-312018/05/31
201906152019-06-152019/06/15
202212012022-12-012022/12/01
99999999NaTNaT

内容的提问来源于stack exchange,提问作者N-Sam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:27:01