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

Pandas日期处理问题:需将后两位小于70的年份从20XX转换为19XX

错误原因
  • 循环逻辑错误:遍历年份时每次判断都对整个DATE列全局修改,只要触发一次条件整列就统一加100年,多次循环后日期叠加偏移完全混乱
  • 判断逻辑写反:需求是调整20XX年后两位小于70的日期为19XX,你写的条件是年份小于2000就加100年,和需求完全相反
  • 不要用循环处理pandas列数据,向量化操作更稳定高效
正确实现代码

首先确保DATE列为日期格式:

import pandas as pd
data['DATE'] = pd.to_datetime(data['DATE'])

按需求调整年份:

# 年份后两位小于70的日期减100年
data['DATE'] = data['DATE'].mask(
    data['DATE'].dt.year % 100 < 70,
    data['DATE'] - pd.offsets.DateOffset(years=100)
)
效果验证
  • 输入2061-01-01 → 输出1961-01-01,符合预期
  • 输入2071-01-01 → 保留2071-01-01不变,符合规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:54:00