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

如何在Python Pandas中按条件校验指定格式字符串并转换为日期

实现代码

import pandas as pd

# 构造示例DataFrame,若你的col1是数值类型,先执行 df['col1'] = df['col1'].astype(str) 转成字符串
df = pd.DataFrame({'col1': ['20002211', '19980515']})

# 校验月份,不符合规则的替换为19000102
df['col1'] = df['col1'].where(
    df['col1'].str.slice(4, 6).astype(int).between(1, 12),
    '19000102'
)

# 转换为日期格式,最终col1为datetime64类型
df['col1'] = pd.to_datetime(df['col1'], format='%Y%m%d')

# 若需要输出为字符串格式的yyyy-mm-dd,可取消注释下面这行
# df['col1'] = df['col1'].dt.strftime('%Y-%m-%d')

结果验证

执行后输出的df内容如下:

col1
0 1900-01-02
1 1998-05-15

逻辑说明

  • 用str.slice(4,6)截取col1字符串的第5、6位,对应规则中的月份字段
  • 通过between(1,12)判断月份是否在合法范围内,不满足条件的值统一替换为19000102
  • 最后通过pd.to_datetime指定%Y%m%d格式,将字符串转换为Pandas标准日期类型

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 16:36:03