Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 23, 2024 14:51:13

lizzyone
Зарегистрирован: 2022-07-18
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Как перевернуть строки в столбцы

Всем привет!
Дана выгрузка с вопросами и ответами из опросников. Помогите, пожалуйста, написать код, чтобы вопросы перенести в столбцы, а ответы на них заполнить как значения в этих столбцах.

Вот пример как сейчас выглядит таблица:
кандидат вопрос ответ
кандидат_1 вопрос_1 ответ_1_1
кандидат_1 вопрос_2 ответ_1_2
кандидат_1 вопрос_3 ответ_1_3
кандидат_2 вопрос_1 ответ_2_1
кандидат_2 вопрос_2 ответ_2_2
кандидат_2 вопрос_3 ответ_2_3
кандидат_3 вопрос_1 ответ_3_1
кандидат_3 вопрос_2 ответ_3_2
кандидат_3 вопрос_3 ответ_3_3

А вот какую таблицу нужно получить:
кандидат вопрос_1 вопрос_2 вопрос_3
кандидат_1 ответ_1_1 ответ_1_2 ответ_1_3
кандидат_2 ответ_2_1 ответ_2_2 ответ_2_3
кандидат_3 ответ_3_1 ответ_3_2 ответ_3_3

Заранее спасибо за помощь!

Офлайн

#2 Янв. 24, 2024 05:07:30

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9844
Репутация: +  853  -
Профиль   Отправить e-mail  

Как перевернуть строки в столбцы

  
>>> import itertools
>>> 
>>> text = """\
... кандидат_1 вопрос_1 ответ_1_1
... кандидат_1 вопрос_2 ответ_1_2
... кандидат_1 вопрос_3 ответ_1_3
... кандидат_2 вопрос_1 ответ_2_1
... кандидат_2 вопрос_2 ответ_2_2
... кандидат_2 вопрос_3 ответ_2_3
... кандидат_3 вопрос_1 ответ_3_1
... кандидат_3 вопрос_2 ответ_3_2
... кандидат_3 вопрос_3 ответ_3_3
... """
>>> 
>>> lst = [i.split() for i in text.splitlines()]
>>> lst.sort()
>>> 
>>> table = []
>>> for item, group in itertools.groupby(lst, key=lambda i: i[0]):
...     line = [item] + [i[-1] for i in group]
...     table.append(line)
... 
>>> out = '\n'.join(map(' '.join, table))
>>> print(out)
кандидат_1 ответ_1_1 ответ_1_2 ответ_1_3
кандидат_2 ответ_2_1 ответ_2_2 ответ_2_3
кандидат_3 ответ_3_1 ответ_3_2 ответ_3_3
>>>



Отредактировано py.user.next (Янв. 24, 2024 05:09:27)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version