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

Python中如何将多个pandas DataFrame分别导出为不同CSV文件

实现方法

你可以直接在循环内调用pandas内置的to_csv方法实现导出,下面提供两种常用的导出命名规则,按需选择即可:

方案1:基于原TSV文件名生成CSV文件名

适合每个原tsv文件对应一个染色体数据的场景,直接替换原文件后缀为csv作为导出文件名:

import pandas as pd
import os
ext = ('.tsv')
for files in os.listdir(os.getcwd()):
    if files.endswith(ext):
        x = pd.read_table(files, sep='\t', usecols=['#Chrom','Pos','RawScore','PHRED'])
        x.drop_duplicates(subset ="Pos",keep = False, inplace = True)
        # 生成导出文件名:替换原.tsv后缀为.csv
        output_filename = files.rsplit('.', 1)[0] + '.csv'
        # 导出CSV,index=False表示不导出pandas自带的行索引
        x.to_csv(output_filename, index=False, encoding='utf-8-sig')
        # 保留原来的预览逻辑
        data_frame=x.head()
        print(data_frame)

方案2:基于染色体号生成CSV文件名

如果需要统一按染色体编号命名导出文件,可提取DataFrame中#Chrom列的唯一值作为文件名:

import pandas as pd
import os
ext = ('.tsv')
for files in os.listdir(os.getcwd()):
    if files.endswith(ext):
        x = pd.read_table(files, sep='\t', usecols=['#Chrom','Pos','RawScore','PHRED'])
        x.drop_duplicates(subset ="Pos",keep = False, inplace = True)
        # 取染色体号作为文件名
        chrom_num = x['#Chrom'].unique()[0]
        output_filename = f'chr{chrom_num}_output.csv'
        x.to_csv(output_filename, index=False, encoding='utf-8-sig')
        # 保留原来的预览逻辑
        data_frame=x.head()
        print(data_frame)

补充说明

  • 如果只需要导出原来打印的前5行数据,把导出语句里的x替换成data_frame即可
  • encoding='utf-8-sig'参数是为了兼容Windows系统下打开CSV不会出现乱码,Linux/Mac环境可以去掉该参数

内容的提问来源于stack exchange,提问作者Hctor Alessandro Lpez Hernndez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:36:04