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
可以在处理完每个csv文件后,将结果保存到一个总的csv文件中。具体实现可以按照以下步骤:
- 在处理第一个csv文件前,创建一个空的总结果csv文件,并定义好列名。
- 在处理每个csv文件时,将计算的结果保存到一个临时csv文件中,使用pandas的to_csv方法。
- 将临时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)
``
原文地址: https://www.cveoy.top/t/topic/cVrV 著作权归作者所有。请勿转载和采集!