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

从DataFrame文本列提取指定格式日期时间至独立新列

从DataFrame文本列提取指定格式日期时间并拆分为多列

解决方案

利用Pandas结合正则表达式,可高效提取目标格式的日期时间并转为单独列,步骤如下:

  1. 构造示例数据(已有DataFrame可跳过)
import pandas as pd

data = {
    'ID': [1, 2],
    'RESULT': [
        'Patients Discharged Home :   12/07/2022 11:19 Bob Melciv   Appt 12/07/2022 12:19 Medicaid...',
        'Stawword Geraldio -    12/17/2022 11:00 Bob Melciv   Appt 12/10/2022 12:09 Risk Factors...'
    ]
}
df = pd.DataFrame(data)
  1. 提取日期时间并生成多列
# 匹配MM/DD/YYYY HH:MM格式的正则表达式
time_pattern = r'\b\d{2}/\d{2}/\d{4} \d{2}:\d{2}\b'

# 提取每行所有符合格式的日期时间,转为DataFrame
time_cols = df['RESULT'].str.findall(time_pattern).apply(pd.Series)

# 重命名列名为DATE_TIME_1、DATE_TIME_2...
time_cols.columns = [f'DATE_TIME_{idx+1}' for idx in time_cols.columns]

# 合并原ID列与提取出的时间列
final_df = pd.concat([df['ID'], time_cols], axis=1)
  1. 输出结果
    执行print(final_df)将得到:
ID        DATE_TIME_1        DATE_TIME_2
0   1  12/07/2022 11:19  12/07/2022 12:19
1   2  12/17/2022 11:00  12/10/2022 12:09

关键说明

  • 正则中的\b是单词边界,确保只提取完整的日期时间字符串,避免误匹配片段内容。
  • str.findall会抓取每行所有符合规则的结果,apply(pd.Series)自动将列表转为多列,若某行日期时间数量不同,不足的列会填充NaN。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 11:55:39