Форум сайта python.su
Всем добрый день! Вопрос от новичка в python.
У меня есть такая таблица в .csv с разделителем табуляцией:
header 1 0 1 2 3
a 0 10 10 10
Задача преобразовать ее в такой формат:
header 1 header 2 value
a 0 0
a 1 10
a 2 10
a 3 10
где “header 2” получен из первой строки, “value” - из второй. Кто-нибудь сталкивался подобным преобразованием? Как объяснить программе откуда загружать значения в новые столбцы? Буду рада Вашим комментариям и примерам кода.
Офлайн
annfromomskЭто тогда называется tsv.
таблица в .csv с разделителем табуляцией:
annfromomskКонечно нет. Возможных преобразований практически бесконечно много, тут по теории вероятности ваш вариант просто ни у кого никогда не встретится.
Кто-нибудь сталкивался подобным преобразованием?
annfromomskНу начните с того что объясните это нам а не программе. Я например не понял принцип построения выходного формата. Сделайте все поля уникальными и покажите выходной формат.
Как объяснить программе откуда загружать значения в новые столбцы?
Офлайн
Спасибо за Ваши замечания
doza_andВот исправленный вариант вопроса.
Отредактировано annfromomsk (Май 24, 2018 12:38:27)
Офлайн
>>> doc='''Header 1 0 1 2 3 a 10 11 12 13 ''' >>> l = [[j for j in i.split('\t')] for i in doc.strip().split('\n')] >>> x= len(l[0]) >>> y = len(l) >>> out = [[l[j][i] for j in range(y)] for i in range(x)] >>> s = '\t'.join(['Value','Header1','Header2']) + '\n' >>> for i in out[1:]: s += '\t'.join([i[1],'a',i[0]]) +'\n' >>> print(s) Value Header1 Header2 10 a 0 11 a 1 12 a 2 13 a 3 >>>
Офлайн