В длинную таблицу в Pandas
В широкой таблице у каждой меры
свой столбец: цена, количество, скидка
и так далее. Столбец с названием
объекта при этом один. Чтобы все
меры лежали в одном столбце с числами,
а рядом был столбец с именем меры,
применяют функцию melt.
Создадим широкую таблицу товаров и переведём её в длинный вид:
import pandas as pd
data = {
'item': ['pen', 'book'],
'price': [10, 50],
'qty': [3, 2],
}
wide = pd.DataFrame(data)
long = pd.melt(
wide,
id_vars=['item'],
var_name='measure',
value_name='value',
)
print(long) # выведет item measure value
# 0 pen price 10
# 1 book price 50
# 2 pen qty 3
# 3 book qty 2
Столбец item сохранился:
он был указан как идентификатор
строки. Бывшие столбцы мер попали
в measure, их значения -
в value. Число строк выросло:
на каждый товар теперь по строке
на каждую меру.
Соберите таблицу из трёх учеников
в столбце name и оценок
math и lang в двух
столбцах. Получите длинную таблицу,
где имена предметов в одном столбце,
оценки в другом, имена учеников
не теряются. Выведите результат.
Создайте таблицу городов: столбец
city и два числовых столбца
с часами работы двух отделений.
Переведите её так, чтобы в одном
столбце было имя отделения, в другом
- число часов. Выведите таблицу.
Из словаря со столбцами team,
wins и draws соберите
широкую таблицу на четыре команды.
Получите длинный вид с подписью
показателя и числом. Выведите его.