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

如何遍历Pandas DataFrame 关联MAX_Cell命名tif文件与对应csv文件

问题描述

现有条件

  • 存储指定目录下所有文件元信息的Pandas DataFrame,数据样例如下:
>  Drive  Main             Project Imaging Folder Experimental Group  \
> 0     Z:  koch  SARS-CoV-2 Project        Imaging     SmF_SCoV_5'UTR  
> 1     Z:  koch  SARS-CoV-2 Project        Imaging     SmF_SCoV_5'UTR  
> 79    Z:  koch  SARS-CoV-2 Project        Imaging     SmF_SCoV_5'UTR  
> 80    Z:  koch  SARS-CoV-2 Project        Imaging     SmF_SCoV_5'UTR  
> 91    Z:  koch  SARS-CoV-2 Project        Imaging     SmF_SCoV_5'UTR  
> 92    Z:  koch  SARS-CoV-2 Project        Imaging     SmF_SCoV_5'UTR  


            Experimental Rep                        File Name  \ 0   20210424_CMV_SARS_5'UTR   mRNA_MAX_Cell09_Spot_Stats.csv    1  
20210424_CMV_SARS_5'UTR   mRNA_MAX_Cell10_Spot_Stats.csv    79 
20210424_CMV_SARS_5'UTR  AVG_BG_MAX_Cell10.tif (RGB).tif    80 
20210424_CMV_SARS_5'UTR               AVG_MAX_Cell10.tif    91 
20210424_CMV_SARS_5'UTR                   MAX_Cell09.tif    92 
20210424_CMV_SARS_5'UTR                   MAX_Cell10.tif   

                                                  Path     7   0   Z:\koch\SARS-CoV-2 Project\Imaging\SmF_SCoV_5'...   NaN   1  
Z:\koch\SARS-CoV-2 Project\Imaging\SmF_SCoV_5'...   NaN   79 
Z:\koch\SARS-CoV-2 Project\Imaging\SmF_SCoV_5'...  None   80 
Z:\koch\SARS-CoV-2 Project\Imaging\SmF_SCoV_5'...  None   91 
Z:\koch\SARS-CoV-2 Project\Imaging\SmF_SCoV_5'...  None   92 
Z:\koch\SARS-CoV-2 Project\Imaging\SmF_SCoV_5'...  None
  • 已实现csv文件读取逻辑,代码如下:
from pathlib import Path
import pandas as pd

FINDPATH = Path("Z:\koch\Imaging")
FILEEXT = ("*.csv")

files_dfs = {}

for csv_file in FINDPATH.rglob(FILEEXT):
    filename = csv_file.name
    df = pd.read_csv(csv_file)
    files_dfs[filename] = df
  • 文件命名规则:mRNA_{tif文件名去掉后缀}_Spot_Stats.csv 对应 {tif文件名},例如mRNA_MAX_Cell09_Spot_Stats.csv对应MAX_Cell09.tif

需求

遍历元信息DataFrame,筛选所有以MAX_Cell开头的原始tif文件,输出其文件路径,同时匹配对应的csv文件名,最终实现tif文件in silico模拟后和对应csv真实数据对比。

实现方案
  1. 筛选符合要求的tif文件
# 假设存储元信息的DataFrame变量名为meta_df
max_tif_df = meta_df[meta_df["File Name"].str.startswith("MAX_Cell") & meta_df["File Name"].str.endswith(".tif")].copy()
  1. 匹配对应的csv文件名
def get_csv_name(tif_name):
    # 去掉tif后缀
    tif_core = tif_name.rsplit(".", 1)[0]
    return f"mRNA_{tif_core}_Spot_Stats.csv"

max_tif_df["csv_file_name"] = max_tif_df["File Name"].apply(get_csv_name)
  1. 遍历配对文件执行后续处理
for _, row in max_tif_df.iterrows():
    tif_path = row["Path"]
    csv_name = row["csv_file_name"]
    # 跳过无对应csv的tif文件
    if csv_name not in files_dfs:
        continue
    # 读取真实数据
    real_data = files_dfs[csv_name]
    
    # 插入自定义的tif文件in silico模拟逻辑,得到sim_data
    # sim_data = your_simulation_function(tif_path)
    
    # 插入自定义的模拟结果与真实数据对比逻辑
    # compare_result = compare_data(sim_data, real_data)
    
    # 按需输出结果
    print(f"tif文件路径:{tif_path}")
    print(f"对应csv文件名:{csv_name}")
    # print(f"对比结果:{compare_result}")
注意事项
  • 确认元信息DataFrame的Path列存储的是完整可用的tif绝对路径,若路径缺失可根据其他列拼接生成
  • 处理大量文件时可将iterrows替换为itertuples提升运行效率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:06:03