У меня есть набор из 38 текстовых файлов, которые имеют одинаковый формат: первый столбец - идентификатор гена, а остальные столбцы - данные выражения. Я хочу объединить все эти файлы в один и сохранить все столбцы тогда и только тогда, когда первый столбец идентификаторов генов одинаков.
Я попытался выполнить слияние в 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
но это просто записывает это в окно терминала, и это слишком много, чтобы следовать.
Можете ли вы предложить способ получить один файл, содержащий все столбцы данных, причем первый столбец является общим идентификатором гена?