#python #zip #transpose
#python #zip #транспонировать
Вопрос:
Я пытаюсь транспонировать таблицу, используя этот код:
def transpose_otu_table(otu_table):
with open(otu_table) as f:
rows = [x.split() for x in f]
transposed_rows = zip(*rows)
with open(otu_table.rstrip('.txt') '_TRANS.txt', 'a') as newfile:
for new_row in transposed_rows:
towrit = ''
for el in new_row:
towrit = el 't'
towrit.rstrip('t')
towrit = 'n'
newfile.write(towrit)
return()
Он отлично работает для небольших таблиц, но когда я пробую его с реальными данными, он создает пустой файл.
Я полагаю, это как-то связано с ограничениями памяти в zip.
Как я могу преодолеть эту проблему?
Комментарии:
1. ваш отступ нарушен, что делает ваш код неоднозначным. Вы должны это исправить. В противном случае никто не сможет вам надежно помочь
2.
zip
не имеет (почти) никаких ограничений по памяти. Это просто дает вам генератор.*rows
может иметь интересные эффекты, но это тоже должно дать вам генератор.3. Если вы еще не знакомы с
pandas
, вы можете взглянуть и посмотреть, предоставляет ли это более простое решение для вас: pandas.pydata.org/pandas-docs/stable/reshaping.html