【发布时间】:2017-10-27 17:16:40
【问题描述】:
我写了一段代码,可以读取一个 .fasta 文件,分析单个基因序列,根据所述序列进行计算,然后将计算结果组织到单个 pandas 数据框中,随后将其导出为.csv 文件。
我最近更新了代码,以便它解析一个包含多个序列的 .fasta 文件,虽然我知道如何去做,但当前形式的代码会为每个序列导出一个 .csv 文件。当 .fasta 文件包含许多序列(例如,超过 100 个)时,必须对如此多的 .csv 文件进行排序可能会有些费力。
因此,我尝试将每个 pandas 数据框导出到单个 .csv 文件中。但是,我不确定如何设置代码才能发生这种情况。现在,代码基于一个 for 循环,该循环遍历 dict 的值(存储 .fasta 文件中的序列)。在每次迭代中,都会调用一个函数来创建一个包含相关计算结果的 dict,然后调用另一个函数来创建 pandas 数据帧并用 dict 中的信息填充它,然后将其导出为 .csv 文件。
import pandas as pd
from os import path
for seq in seq_dict.keys():
result_dict= calculator_func(seq_dict[seq])
results_df= data_assembler(result_dict)
results_df.to_csv(path.join(output_dir, "{}_dataframe.csv".format(project_name)
还应该注意的是,数据帧的索引都是基于相关序列中的数字位置。
在任何情况下,我都很难弄清楚我应该如何将所有数据帧合并到一个 .csv 文件中,以便索引使用户能够告诉 a。该行来自哪个序列,b。该行所基于的序列中的哪个位置。有人可以推荐我一种方法吗?
【问题讨论】:
标签: python-2.7 pandas csv