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

如何从DataFrame行中提取MMDDYYYY格式日期并赋值给变量

提取DataFrame字符串中的MMDDYYYY日期并赋值变量

需求说明

从DataFrame的ID列中,提取每行第一个符合MMDDYYYY格式的日期(如01252023),并将第一个出现的日期赋值给变量,用于文件名拼接。

实现步骤

以下是基于Python和Pandas的具体实现代码:

  1. 导入库并构造示例DataFrame
import pandas as pd

# 构造用户提供的示例数据
data = {
    'ID': [
        'blah',
        'unc.abc.155gdgeh0t4ngs8_XYZ_01252023_US_C_Home_en-us_RS_Nat\'l-vs-UNC',
        'blah',
        'unc.abc.52gst4363463463_RST_01272023_US_C_Away_en-us_RS_Nat\'l-vs-UNC',
        'unc.abc.534gs23ujgf9d8f_UVX_02052023_US_C_Away_en-us_RS_TEST-vs-TEST',
        'unc.abc.5830ugjshg5345s_AAA_11012023_CA_C_Home_en-us_RS_Reg-vs-HBS',
        'unc.abc.fs44848fvs8gs82_MBB_12252023_US_C_Home_en-us_RS_Nat\'l-vs-UNC',
        'unc.abc.fe0wjv-578244fs_FFS_04222023_CA_C_Away_en-us_RS_Nat\'l-vs-UNC'
    ]
}
df = pd.DataFrame(data)
  1. 用正则表达式提取日期
    使用正则匹配MMDDYYYY格式的日期(确保月份为01-12,日期为01-31),提取每行第一个匹配结果:
# 正则表达式:匹配MMDDYYYY格式的日期
date_pattern = r'(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{4}'

# 提取每行第一个匹配的日期,无匹配则返回NaN
df['extracted_date'] = df['ID'].str.extract(date_pattern, expand=False)
  1. 获取第一个出现的日期并赋值变量
    过滤空值后,取第一个非空的日期作为目标变量:
# 提取第一个出现的有效日期
first_appeared_date = df['extracted_date'].dropna().iloc[0]

# 拼接文件名示例
output_filename = f'data_report_{first_appeared_date}.xlsx'
print(output_filename)  # 输出:data_report_01252023.xlsx

说明

  • 正则表达式date_pattern会精准匹配合法的MMDDYYYY日期,避免误提取其他8位数字串;
  • 如果不需要严格校验日期合法性,可简化正则为r'\d{8}'(仅匹配8位数字);
  • 若需要处理所有行的日期,可直接使用df['extracted_date']列,无需过滤取第一个值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 11:50:31