Сводная по двум признакам в Pandas
Чтобы сравнить числа сразу по двум
признакам, строки таблицы задают
значениями одного столбца, столбцы -
значениями другого. В каждой ячейке
остаётся одно сводное число, если
исходных строк несколько, их
сначала суммируют. Для этого
подходит метод pivot_table.
Возьмём продажи по регионам и товарам и сведём количество единиц суммой:
import pandas as pd
data = {
'region': ['North', 'North', 'South', 'South', 'North', 'South'],
'product': ['A', 'B', 'A', 'B', 'A', 'A'],
'units': [10, 5, 8, 12, 3, 7],
}
shop = pd.DataFrame(data)
grid = shop.pivot_table(
index='region',
columns='product',
values='units',
aggfunc='sum',
)
print(grid) # выведет product A B
# region
# North 13 5
# South 15 12
В строке North товар A
встречался дважды: 10 и 3
дали 13. Товар B был один
раз. Для South суммы по
A и B тоже посчитаны
отдельно.
Соберите таблицу посещений: столбец
weekday, столбец hall
и столбец visitors с несколькими
строками на одну пару день-зал.
Получите сводную: дни в строках,
залы в столбцах, в ячейках сумма
посетителей. Выведите её.
Создайте таблицу из восьми строк:
две команды, три дисциплины
и столбец score с повторами.
Разложите дисциплины по столбцам,
команды оставьте в индексе,
баллы сложите. Выведите результат.
Из словаря со столбцами year,
brand и sales соберите
таблицу с дублями пар год-марка.
Постройте сводную с годами в строках,
марками в столбцах и суммой продаж
в ячейках. Выведите таблицу.