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

使用Pandas结合datefinder从列字符串中提取日期遇报错如何解决

问题原因
  • 你对df['SECURITY PASS DATE']单列调用apply方法时,传入lambda的参数x已经是该列每行的字符串值,你尝试对字符串用x['SECURITY PASS DATE']取索引,自然触发“String indices must be integers”报错。
  • find_dates是datefinder库的内置方法,不是pandas DataFrame的方法,不能用df.find_dates调用。
修正实现代码

首先确保你已经安装了依赖库:

pip install datefinder

完整处理逻辑如下:

import pandas as pd
from datefinder import DateFinder

# 初始化日期提取实例
dt_finder = DateFinder()

def extract_dates(text: str) -> list:
    # 提取所有日期并转为你需要的DD/MM/YYYY字符串格式
    return [dt.strftime("%d/%m/%Y") for dt in dt_finder.find_dates(text)]

# 新增列存储提取到的日期列表
df["SECURITY INTERVIEW DATE"] = df["SECURITY PASS DATE"].apply(extract_dates)

# 若需要把多个日期拆分为单独列,可追加以下代码
date_split = df["SECURITY INTERVIEW DATE"].apply(pd.Series)
date_split.columns = [f"EXTRACTED_DATE_{i+1}" for i in date_split.columns]
df = pd.concat([df, date_split], axis=1)
输出说明

处理后你的示例数据会生成如下对应结果:

SECURITY PASS DATEEXTRACTED_DATE_1EXTRACTED_DATE_2
applied on 11/10/2021. need to follow up on 01/12/202111/10/202101/12/2021
completed on 19/10/2021. need to renew on 01/12/202219/10/202101/12/2022
applied on 01/12/2021.01/12/2021NaN

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:15:05