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

如何从放射报告.txt文件提取数据并按指定列存入pandas DataFrame?

从放射报告文本提取数据并构建Pandas DataFrame

1. 读取报告文本文件

先将txt文件中的完整报告内容读入内存:

with open('radiology_report.txt', 'r', encoding='utf-8') as file:
    full_report = file.read()

2. 按主题提取目标内容

利用正则表达式匹配Findings、Impression、Recommendation对应的文本区块,适配常见放射报告格式:

import re

# 提取Findings部分
findings_pattern = re.compile(r'Findings:(.*?)(?=Impression:|Recommendation:|$)', re.DOTALL | re.IGNORECASE)
findings = findings_pattern.search(full_report).group(1).strip() if findings_pattern.search(full_report) else ''

# 提取Impression部分
impression_pattern = re.compile(r'Impression:(.*?)(?=Recommendation:|$)', re.DOTALL | re.IGNORECASE)
impression = impression_pattern.search(full_report).group(1).strip() if impression_pattern.search(full_report) else ''

# 提取Recommendation部分
recommendation_pattern = re.compile(r'Recommendation:(.*?)(?=$)', re.DOTALL | re.IGNORECASE)
recommendation = recommendation_pattern.search(full_report).group(1).strip() if recommendation_pattern.search(full_report) else ''

注:添加re.IGNORECASE参数是为了兼容关键词大小写不一致的情况,比如FINDINGS或findings

3. 构建Pandas DataFrame

将完整报告和提取的各主题内容存入指定列的DataFrame:

import pandas as pd

report_data = {
    'Report': [full_report],
    'Findings': [findings],
    'Impression': [impression],
    'Recommendation': [recommendation]
}

df = pd.DataFrame(report_data)

特殊情况处理

  • 如果报告格式有特殊变体(比如主题后带换行、分隔线),需要微调正则表达式的匹配逻辑,确保精准捕获内容
  • 若报告存在多个同类主题(极少出现),可改用re.findall()批量提取后再做针对性处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 13:41:26