可以在处理完每个csv文件后,将结果保存到一个总的csv文件中。具体实现可以按照以下步骤:

  1. 在处理第一个csv文件前,创建一个空的总结果csv文件,并定义好列名。
  2. 在处理每个csv文件时,将计算的结果保存到一个临时csv文件中,使用pandas的to_csv方法。
  3. 将临时csv文件中的数据读取出来,使用pandas的concat方法将其合并到总结果csv文件中。

代码示例:

import os
import pandas as pd

folder_path = "./test1"
csv_files = [os.path.join(folder_path, f) for f in os.listdir(folder_path) if f.endswith('.csv')]

# 定义总结果csv文件的列名
columns = ['file_name', 'tumor_name', 'property', 'median']

# 创建空的总结果csv文件
result_df = pd.DataFrame(columns=columns)
result_df.to_csv(os.path.join(folder_path, "total_median.csv"), index=False)

# 对每一个csv文件进行处理
for csv_file in csv_files:
    # 读取csv文件
    df = pd.read_csv(csv_file, encoding='utf-8')
    df = df.iloc[:, 1:33]
    df_tumor = df[df['name'] == 'tumor']
    df_peritumor = df[df['name'] == 'peritumor']
    tumor_dict = {}
    peritumor_dict = {}
    for name in ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']:
        df_tumor_name = df_tumor[df_tumor['property'] == name]
        df_peritumor_name = df_peritumor[df_peritumor['property'] == name]
        tumor_dict[name] = df_tumor_name
        peritumor_dict[name] = df_peritumor_name
        median = df_tumor_name.iloc[:, 2:33].median()
        print(f"Tumor {name}: {median}")
        
        # 将计算的结果保存到临时csv文件中
        temp_df = pd.DataFrame({
            'file_name': [os.path.splitext(os.path.basename(csv_file))[0]],
            'tumor_name': ['tumor'],
            'property': [name],
            'median': [median]
        })
        temp_df.to_csv(os.path.join(folder_path, f"{os.path.splitext(os.path.basename(csv_file))[0]}_{name}_median.csv"), index=False)
    
    # 将临时csv文件中的数据读取出来,合并到总结果csv文件中
    for name in ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']:
        temp_file = os.path.join(folder_path, f"{os.path.splitext(os.path.basename(csv_file))[0]}_{name}_median.csv")
        temp_df = pd.read_csv(temp_file)
        result_df = pd.concat([result_df, temp_df], ignore_index=True)

# 保存总结果csv文件
result_df.to_csv(os.path.join(folder_path, "total_median.csv"), index=False)
``
folder_path = test1csv_files = ospathjoinfolder_path f for f in oslistdirfolder_path if fendswithcsv# 对每一个csv文件进行处理for csv_file in csv_files # 读取csv文件 df = pdread_csvcsv_file encoding=utf-8 d

原文地址: https://www.cveoy.top/t/topic/cVrV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录