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

如何使用Pandas从数据列中提取2000年及之后的日期(正则表达式实现需求)

如何使用Pandas从数据列中提取2000年及之后的日期(正则表达式实现需求)

没问题,我来帮你搞定这个问题~ 你的需求我仔细梳理了:要从DataFrame里提取2000年及以后的日期,规则是:

  1. 优先从Result列提取,提取到就保留纯日期部分(自动去掉后面的时间);
  2. 如果Result列是空白/空字符串,就从Unit列提取日期;
  3. 其他情况(Result列有非日期内容),即使Unit列有日期也留空。

不用怕正则,我会把每部分都讲得明明白白,代码直接就能用~

正则思路说明

我们需要匹配两种常见的目标日期格式,且年份必须是2000年及以后:

  1. 数字分隔格式:DD/MM/YYYY(比如03/08/2024)
  2. 带月份缩写的格式:DD/Mon/YYYY(比如03/Aug/2024,月份是3个字母的英文缩写)

专门针对需求写的正则模式是:

(\d{1,2}/(?:\d{1,2}|[A-Za-z]{3})/(?:20\d{2}|21\d{2}))

给你拆解下每个部分的作用:

  • \d{1,2}/:匹配1-2位的日期数字,加上斜杠(比如03/)
  • (?:\d{1,2}|[A-Za-z]{3})/:非捕获组,匹配1-2位的月份数字(比如08)或者3个字母的月份缩写(比如Aug),再加上斜杠
  • (?:20\d{2}|21\d{2}):非捕获组,匹配2000-2199之间的年份,严格保证是2000年及以后的有效年份
  • 整个外层的()是捕获组,专门提取我们需要的纯日期部分,后面的时间会被自动忽略,刚好符合你只留日期的需求

完整代码实现

import pandas as pd

# 你的原始数据集
date_extract_df = pd.DataFrame({
'Result':[': XYZ',': 39 YRS/M',': Self',': HOME COLLECTION',': 10593974',
           ': 012408030006',': 03/08/2024',': 03/Aug/2024 11:50 AM',': 03/Aug/2024 03:24 PM',
            ' ','31.80','15'],
 'Unit':['dfd','dfdfd','tytyt','03/08/2024','fgf','tyt','xcx','ere','sds','03/Aug/2024 03:24 PM',
        '4545','5656']
})

# 定义匹配2000+日期的正则模式
date_pattern = r'(\d{1,2}/(?:\d{1,2}|[A-Za-z]{3})/(?:20\d{2}|21\d{2}))'

# 1. 从Result列提取日期,提取不到的返回NaN
result_dates = date_extract_df['Result'].str.extract(date_pattern, expand=False)
# 2. 从Unit列提取日期,提取不到的返回NaN
unit_dates = date_extract_df['Unit'].str.extract(date_pattern, expand=False)

# 3. 按照需求合并结果:
#    - 只有当Result列是空白(或空字符串)时,才用Unit列的日期填充
#    - 其他情况保持Result列的提取结果(空的就留空)
mask = date_extract_df['Result'].str.strip() == ''
extracted_dates = result_dates.where(~mask, unit_dates)
# 把NaN替换为空白字符串,和你的预期格式完全匹配
extracted_dates = extracted_dates.fillna('').reset_index(drop=True)

# 输出最终结果
print(extracted_dates.to_string(index=True))

运行结果

0 
1 
2 
3 
4 
5 
6 03/08/2024
7 03/Aug/2024
8 03/Aug/2024
9 03/Aug/2024
10 
11 

完全和你想要的预期结果一致啦!

如果之后遇到其他日期格式(比如YYYY/MM/DD),只需要稍微调整正则模式就行,你可以随时问我~

备注:内容来源于stack exchange,提问作者ViSa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 08:29:38