Транспонирование большой таблицы, ограничения zip

#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