如何将多个pandas数据框导出到一个.csv文件中?

时间:2017-10-27 17:16:41

标签: python-2.7 pandas csv

我编写了一段代码,可以在一个.fasta文件中读取,分析单个基因序列,根据所述序列进行计算,然后将计算结果组织成一个pandas数据帧,随后将其导出为.csv文件。

我最近更新了代码,以便它解析包含多个序列的.fasta文件,虽然我想出了如何做,但是当前形式的代码每个序列导出一个.csv文件。当.fasta文件包含许多序列(例如,超过100个)时,必须对这么多.csv文件进行排序可能有些费力。

因此,我试图将每个pandas数据帧导出到单个.csv文件中。但是,我不知道如何设置代码以便发生这种情况。现在,代码基于for循环,该循环迭代dict的值(存储来自.fasta文件的序列)。在每次迭代中,调用一个函数来创建一个充满相关计算结果的字典,另一个函数被调用,创建pandas数据帧并用dict中的信息填充它,然后将其导出为.csv文件。 / p>

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文件中,这样索引就可以让用户告诉他们。行来自哪个序列和b。行所基于的序列中的哪个位置。任何人都可以向我推荐某种方法吗?

1 个答案:

答案 0 :(得分:1)

您可以根据需要设置索引,包括字符串。试试这个例子:

import pandas as pd

test_frame = pd.DataFrame({"Sequence":[1,2],"Position":[3,4]})
test_frame.index = "Sequence:" + test_frame['Sequence'].astype(str) + "_" + "Position:" + test_frame['Position'].astype(str)
test_frame