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

如何将yyyymmdd格式整数日期转换为Pandas时间序列

把yyyymmdd格式日期转成Pandas时间序列的方法

嘿,这个需求太常见了!我平时处理这种日期格式转换最多的就是用Pandas自带的工具,几步就能搞定,给你详细说说:

1. 基础转换:直接用pd.to_datetime()

Pandas对yyyymmdd这种规整的日期格式识别度很高,哪怕你的日期是字符串或者整数类型,都能直接转换。

假设你的DataFrame里日期列名叫date,代码可以这么写:

import pandas as pd

# 转换日期列为时间类型
df['date'] = pd.to_datetime(df['date'], format='%Y%m%d')

这里的format='%Y%m%d'是明确告诉Pandas日期的格式,避免它自动识别出错(比如遇到类似格式的非日期数据时),运行效率也会更高。

2. 转成时间序列索引(推荐)

如果之后要做时间序列分析(比如按天/月重采样、滚动窗口计算),把日期列设置为DataFrame的索引会更方便:

# 将转换后的日期列设为索引
df.set_index('date', inplace=True)

这时候你的DataFrame就拥有了DatetimeIndex,后续操作时间相关的逻辑会顺畅很多。

3. 处理无效日期

如果你的数据里混有格式错误或者无效的日期(比如20180230这种不存在的日期),可以用errors参数来处理:

  • errors='coerce':把无效日期转成NaT(Pandas里的缺失时间值),之后可以统一处理缺失值
  • errors='raise':直接抛出错误,方便你定位问题数据

示例代码:

df['date'] = pd.to_datetime(df['date'], format='%Y%m%d', errors='coerce')

完整示例

给你一个可运行的小例子,直观看看效果:

import pandas as pd

# 模拟数据集,日期包含整数和字符串两种类型
data = {'date': [20180505, 20180506, '20180507', 20180508],
        'sales': [1200, 1500, 1300, 1600]}
df = pd.DataFrame(data)

# 转换日期列
df['date'] = pd.to_datetime(df['date'], format='%Y%m%d')

# 设置为时间索引
df.set_index('date', inplace=True)

# 查看结果
print(df.index)
# 输出类似:DatetimeIndex(['2018-05-05', '2018-05-06', '2018-05-07', '2018-05-08'], dtype='datetime64[ns]', name='date', freq=None)

这样就完美把yyyymmdd格式的日期转成Pandas的时间序列啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:33:40