Как перевернуть таблицу?
Есть таблица из .xlsx вида:
Вопрос
ответ
ответ
ответ
ответ
Вопрос
ответ
ответ
ответ
ответ
Количество ответов всегда 4
Нужно привести к следующему виду:
Вопрос1 | ответ1 | ответ2 | ответ3 | ответ4
Вопрос2 | ответ1 | ответ2 | ответ3 | ответ4
Есть ли простой вариант всё это перевернуть? Все мои идеи подразумевают введение доп.столбца с индексами 0..4 итд
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Пример:
df = pd.read_excel(r"D:\download\пример.xlsx", header=None, names=["val"])
df["idx"] = np.arange(0, len(df)) // 5
df.loc[np.arange(0, len(df), 5), "Type"] = "Вопрос"
df.loc[df["Type"].isna(), "Type"] = \
"Ответ" + (df.loc[df["Type"].isna()].groupby("idx").cumcount()+1).astype(str)
res = (df.pivot(index="idx", columns="Type", values="val")
.rename_axis(None)
.rename_axis(None, axis=1))
результат:
In [106]: res
Out[106]:
Вопрос Ответ1 Ответ2 Ответ3 Ответ4
0 В каком году случилось что-то? 1980 1998 1975 1906
1 Сколько атомов у такого-то элемента? 2 3 4 5
2 В каком городе не работал великий к... Берлин Париж Рим Неаполь