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

匹配胸片图像路径到Pandas DataFrame的技术方案及代码咨询

匹配胸片文件名到DataFrame并处理多路径情况

问题描述

现有一个包含findings、impression、file_Name三列的Pandas DataFrame(file_Name含目录信息),同时有一个胸部X光图像目录,结构为home/files/f1至home/files/f11,每个子文件夹下有数千张.jpg格式胸片。需要遍历该目录,将匹配到的图像路径存入DataFrame新列;同时需处理同一file_Name对应多幅图像的场景。

解决思路

  • 先预扫描所有图像文件,建立文件名到路径列表的映射字典,避免重复遍历目录提升效率
  • 利用字典快速匹配DataFrame中的file_Name,直接获取对应路径
  • 对多路径的情况,可选择存储路径列表、取第一个路径或标记多匹配状态

代码实现

1. 导入依赖库

import os
import pandas as pd

2. 构建文件名-路径映射字典

# 图像根目录
root_dir = "/home/files"

# 初始化映射:key为文件名,value为对应路径的列表
file_path_map = {}

# 遍历f1至f11子文件夹
for folder_name in os.listdir(root_dir):
    folder_path = os.path.join(root_dir, folder_name)
    # 过滤非目标文件夹
    if not (folder_name.startswith("f") and folder_name[1:].isdigit() and 1 <= int(folder_name[1:]) <= 11):
        continue
    if not os.path.isdir(folder_path):
        continue
    
    # 遍历文件夹内的jpg文件
    for file_name in os.listdir(folder_path):
        if file_name.lower().endswith(".jpg"):
            full_path = os.path.abspath(os.path.join(folder_path, file_name))
            # 追加路径到对应文件名的列表中
            if file_name in file_path_map:
                file_path_map[file_name].append(full_path)
            else:
                file_path_map[file_name] = [full_path]

3. 匹配到DataFrame并处理多路径

# 假设你的DataFrame名为df
# 新增列存储所有匹配到的路径列表
df["image_paths"] = df["file_Name"].map(lambda x: file_path_map.get(x, []))

# 可选:根据业务需求处理多路径场景
# 场景1:只保留第一个匹配的路径
df["first_image_path"] = df["image_paths"].apply(lambda x: x[0] if x else None)

# 场景2:标记是否存在多幅匹配图像
df["has_multiple_images"] = df["image_paths"].apply(lambda x: len(x) > 1)

补充说明

  • 预扫描目录仅需执行一次,后续匹配操作效率极高
  • 若file_Name包含目录前缀,可改用os.path.basename(x)提取纯文件名进行匹配
  • 对于多路径条目,可根据需求扩展逻辑:比如取最新修改的路径、存储所有路径供后续人工核对等

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 05:10:29