Python Pandas 批量计算 CSV 文件中肿瘤数据的中位数

本代码使用 Python Pandas 库批量处理多个 CSV 文件,计算每个文件中特定条件下的肿瘤数据的中位数,并保存到单独的 CSV 文件中。

代码示例

import pandas as pd
import os

# 读取文件夹中的所有csv文件
folder_path = './test1/'
csv_files = [f for f in os.listdir(folder_path) if f.endswith('.csv')]

# 定义需要筛选的列名
column_names = ['name', 'property']

# 遍历每个csv文件并计算中位数
for file_name in csv_files:
    file_path = os.path.join(folder_path, file_name)
    df = pd.read_csv(file_path)
    df = df.iloc[:,1:33]
    df_tumor = df[df['name'] == 'tumor']
    tumor_dict = {}
    for name in ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']:
        df_tumor_name = df_tumor[df_tumor['property'] == name]
        tumor_dict[name] = df_tumor_name
        medians = tumor_dict[name].median()
        output_file_name = os.path.splitext(file_name)[0] + f'_medians_{name}.csv'
        output_file_path = os.path.join(folder_path, output_file_name)
        pd.DataFrame(medians).to_csv(output_file_path, index=False)

代码分析

  1. 读取 CSV 文件: 代码首先使用 os.listdir() 函数列出指定文件夹中的所有文件,并筛选出以 .csv 结尾的文件,即 CSV 文件。
  2. 筛选数据: 代码定义了需要筛选的列名 column_names,并从每个 CSV 文件中读取数据,筛选出 name 列值为 'tumor' 的数据,并将其保存在 df_tumor 中。
  3. 计算中位数: 代码遍历每个 CSV 文件,并针对每个 'property' 列的取值 (A, B, C... H) 计算中位数。
  4. 保存中位数: 代码将每个 'property' 列的取值对应的中位数保存到单独的 CSV 文件中,文件名包含原始文件名和 'property' 值。

总结

这段代码通过使用 Pandas 库,可以快速高效地批量处理多个 CSV 文件,计算特定条件下的肿瘤数据的中位数,并将其保存到单独的 CSV 文件中。

Python Pandas 批量计算 CSV 文件中肿瘤数据的中位数

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

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