我有一组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?