Я разбираю много сотен файлов .tsv из разных каталогов. Каждый файл имеет только 2 столбца, и идея состоит в том, чтобы использовать индекс в одном столбце для конкатенации позже.Разбор нескольких .tsv с помощью Pandas - эффективная индексация и разбор?
df1=pd.DataFrame({ 'A':['name1.0', 'name2.0', 'name3.0'], 'B':[4., 3., 2.]})
df2=pd.DataFrame({ 'A':['name1.0', 'name3.0', 'name4.0', 'name5.3'], 'B':[3., 4., 5., 0.]})
проблемы:
- Колонна служить индекс должен быть обработан;
- Файлы могут иметь различное количество строк.
Что такое эффективный способ сделать это в python/pandas?
Использование df1
и df2
выше, идея состоит в том, чтобы объединить данные на основе преобразованных индексов. Например:
df1.index=[re.sub('\..+$','',i) for i in df1.loc[:,'A']]
df2.index=[re.sub('\..+$','',i) for i in df2.loc[:,'A']]
out=pd.concat([df1.loc[:,'B'],df2.loc[:,'B']],axis=1)
out
Есть ли более эффективный способ сделать это? Заранее благодарю вас
Ничего себе, я не думал, что это будет так изящно. Спасибо! – Sosi
У меня возникают проблемы с запуском моего кода из-за проблем с памятью, вероятно, из-за размера файла и количества файлов. Я полагаю, что распараллеливание не решает мою проблему. Как бы вы это сделали? Теперь мой подход состоит в том, чтобы попытаться разделить входы и выходы на половину, а затем снова обработать новые таблицы. – Sosi