Уведомления

Группа в Telegram: @pythonsu

#1 Май 23, 2018 15:02:39

annfromomsk
Зарегистрирован: 2018-05-23
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Как преобразовать таблицу csv в python?

Всем добрый день! Вопрос от новичка в 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” - из второй. Кто-нибудь сталкивался подобным преобразованием? Как объяснить программе откуда загружать значения в новые столбцы? Буду рада Вашим комментариям и примерам кода.

Офлайн

#2 Май 23, 2018 22:44:52

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Как преобразовать таблицу csv в python?

annfromomsk
таблица в .csv с разделителем табуляцией:
Это тогда называется tsv.
annfromomsk
Кто-нибудь сталкивался подобным преобразованием?
Конечно нет. Возможных преобразований практически бесконечно много, тут по теории вероятности ваш вариант просто ни у кого никогда не встретится.
annfromomsk
Как объяснить программе откуда загружать значения в новые столбцы?
Ну начните с того что объясните это нам а не программе. Я например не понял принцип построения выходного формата. Сделайте все поля уникальными и покажите выходной формат.



Офлайн

#3 Май 24, 2018 12:36:59

annfromomsk
Зарегистрирован: 2018-05-23
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Как преобразовать таблицу csv в python?

Спасибо за Ваши замечания

doza_and
Вот исправленный вариант вопроса.
Изначальная таблица:
“Header 1” “0” “1” “2” “3”
“a” “10” “11” “12” “13”

Изначальную таблицу нужно преобразовать таким образом, чтобы каждому значению “Value” из (“10” “11” “12” “13”) соответствовала отдельная строка. При этом “Header 1” у всех одинаковый (“a”), а значения “Header 2” для каждого “Value” берутся из первой строчки.

Выходной формат
“Value” “Header 1” “Header 2”
“10” “a” “0”
“11” “a” “1”
“12” “a” “2”
“13” “a” “3”

Отредактировано annfromomsk (Май 24, 2018 12:38:27)

Офлайн

#4 Май 25, 2018 04:40:44

vic57
Зарегистрирован: 2015-07-07
Сообщения: 893
Репутация: +  126  -
Профиль   Отправить e-mail  

Как преобразовать таблицу csv в python?

 >>> 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
>>> 

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version