В широкую таблицу в Pandas
Длинная таблица хранит подпись
строки, имя меры и одно число
в соседних столбцах. Метод
pivot разворачивает имена
мер в заголовки столбцов, а числа
кладёт на пересечение строки
и меры. Агрегации нет: на каждую
пару строка-мера должно приходиться
ровно одно значение.
Создадим длинную таблицу по дням и разложим меры по столбцам:
import pandas as pd
data = {
'day': ['Mon', 'Tue', 'Mon', 'Tue'],
'kind': ['income', 'income', 'expense', 'expense'],
'value': [100, 120, 40, 35],
}
long = pd.DataFrame(data)
wide = long.pivot(
index='day',
columns='kind',
values='value',
)
print(wide) # выведет kind expense income
# day
# Mon 40 100
# Tue 35 120
Индекс таблицы - значения day.
Столбцы expense и income
взяты из столбца kind.
Числа совпали с исходными: для
Mon доход 100 и расход
40, для Tue - 120
и 35.
Соберите длинную таблицу: столбец
month, столбец metric
с двумя разными метками и столбец
score. По одной строке на
каждую пару месяц-метрика. Получите
широкий вид с месяцами в строках
и метриками в столбцах. Выведите его.
Создайте таблицу из четырёх строк:
два сотрудника и два вида часов
(regular и overtime).
Разверните виды часов в столбцы,
сотрудников оставьте в индексе.
Выведите результат.
Из словаря со столбцами region,
crop и yield соберите
длинную таблицу без повторяющихся
пар регион-культура. Получите
широкую таблицу с регионами в строках
и культурами в заголовках. Выведите её.