根据共享的公共字段将多个文件中的所有列合并为一个

时间:2019-06-27 15:23:25

标签: python pandas join merge temp

我有一组38个txt文件,所有文件的格式都相似:第一列是基因ID,其余列是表达数据。我希望将所有这些文件合并为一个,并仅在基因ID的第一列相同的情况下保留所有列。

我曾尝试在Pandas中进行合并,但尝试时会遇到内存错误(尽管它确实适用于其他数据文件):

df_list = []

all_files = glob.glob("*meanCenter_results.txt")

for file in all_files:
    df_list.append(pd.read_csv(file, header = 0, sep = "\t", index_col = 0))

big_df = reduce(lambda left, right: pd.merge(left, right, on = "ORF_Gene", how = "outer"), df_list)
big_df.to_csv("All_GEO_Expression_Data_MeanCentered_Combined.txt", header = True, index = True, sep = "\t")  

我在网上找到了这段代码,它似乎可以满足我的要求,但是对于这种特殊的编程,我真的很陌生。为此,我将一个文件a.txt重新命名,其余的b1.txt重新命名为b37.txt:

temp=$(cat a.txt);for i in b*; do temp=$(echo $temp | join -j1 - $i); done; echo $temp

但这只是将其写入到终端窗口中,因此太多了。

您能否建议一种获取单个文件的方法,该文件包含所有数据列,第一列为共享基因ID?

0 个答案:

没有答案