You need to enable JavaScript to run this app. Python pandas实现连续数字序列的日期重编码(支持闰年处理)
优惠活动
大模型
产品
解决方案
定价
更多

Python pandas实现连续数字序列的日期重编码(支持闰年处理)

基于Pandas的整数-日期重编码实现方案

核心逻辑说明

映射规则的本质拆解为:

  • 固定基准日期:2020-12-31(对应整数1的映射值,完全匹配示例规则)
  • 任意整数n对应的日期 = 基准日期 向前推算 n-1 天
    该方式完全依托pandas内置的标准日历引擎,自动处理闰年、大小月、跨年度的所有日期边界问题,不需要手动维护成百上千条映射字典,哪怕需要处理1000+甚至上万的连续日期都能高效运行。

完整可运行实现代码

1. 导入依赖

import pandas as pd

2. 构造待转换数据

# 构造和你给出的示例一致的原始序列,含空值场景
raw_values = [1,1,1,1, 2,2,2,3,3,3,3,3,4,4,5,6,6,6, None, 100,100,100]
# 转为pandas Series,自动识别空值
s = pd.Series(raw_values)

如果你的数据存储在DataFrame中,直接引用对应列即可,不需要单独构造序列。

3. 核心转换逻辑

# 定义基准日期:整数1对应的31.12.2020
base_date = pd.to_datetime("2020-12-31")
# 执行转换:空值会自动保留为空日期,不会触发计算错误
converted_dates = base_date - pd.to_timedelta(s - 1, unit="D")

4. 格式化为目标日期格式

如果需要输出为示例中的dd.mm.yyyy字符串格式,追加一行代码即可:

converted_dates_str = converted_dates.dt.strftime("%d.%m.%Y")

结果验证

  • 整数1的转换结果:31.12.2020
  • 整数2的转换结果:30.12.2020
  • 整数3的转换结果:29.12.2020
    完全匹配你给出的映射示例。

实用适配说明

  • 自动兼容闰年逻辑:推算到2020年2月时会自动识别2月29日,推算到平年2月时自动跳过29日,不需要额外编写判断代码。
  • 灵活调整基准日期:如果后续业务变更基准日期,仅需修改base_date的取值,其余逻辑无需改动。
  • 空值兼容:原始序列中的空值会自动保留为空,不会抛出运行错误。
  • 大数量级适配:转换1000+连续日期的运行效率和小样本完全一致,不需要额外优化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.27 15:54:02