使用 Python 内置的 os 和 glob 库可以实现读取整个文件夹的 csv 文件,并将数据保存在该文件夹内。

首先,需要导入 os 和 glob 库:

import os
import glob

然后,使用 glob 库的 glob 函数来获取文件夹中所有的 csv 文件路径:

folder_path = "./2023_2_20No2/"
csv_files = glob.glob(os.path.join(folder_path, "*.csv"))

接下来,可以使用 for 循环来遍历所有的 csv 文件,并对每个文件执行之前的操作:

for csv_file in csv_files:
    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}")
    # 将数据保存在该文件夹内
    file_name = os.path.basename(csv_file)
    file_name_without_ext = os.path.splitext(file_name)[0]
    tumor_file_name = f"{file_name_without_ext}_tumor.csv"
    peritumor_file_name = f"{file_name_without_ext}_peritumor.csv"
    for name, df_tumor_name in tumor_dict.items():
        df_tumor_name.to_csv(os.path.join(folder_path, name, tumor_file_name), index=False)
    for name, df_peritumor_name in peritumor_dict.items():
        df_peritumor_name.to_csv(os.path.join(folder_path, name, peritumor_file_name), index=False)

在这个代码中,使用 os.path.basename 和 os.path.splitext 函数来获取每个 csv 文件的文件名和扩展名,然后根据文件名来创建保存 tumor 和 peritumor 数据的 csv 文件,并将数据保存在该文件夹内。

Python 批量处理 CSV 文件:读取整个文件夹并提取数据

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

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