Сводные таблицы, .pivot_table() или .groupby() и .agg()

1. С помощью .pivot_table()

Аргументы метода:
• index — столбцы, по которым группируют данные (идет в левый столбец)
• columns — столбец, по значениям которого происходит группировка (идет в строку-шапку)
• values — значения, которые будут использованы (будут в ячейках)
• aggfunc — функция, применяемая к значениям (например суммирование)

pivot_table_name = old_table_name.pivot_table(index=['col', 'col3'], columns='old_source_to_make_head_line', values='col4', aggfunc='sum')

pivot_table_name = old_table_name.pivot_table(index=['col', 'col3'], columns='old_source_to_make_head_line', values='col4', aggfunc=['median', 'count'])

Переименование столбцов
df.columns = ['col_name_1', 'col_name_2', 'col_name_3']

Функции:
'median' — медиана;
'count' — количество значений;
'sum' — сумма значений;
'min', 'max', 'first', 'last'

2. С помощью .groupby() и .agg()
В методе agg()  используют словарь, в котором ключ — названия столбцов, а значение — аг. функции, которые будут к ним применены (sum , count и др.).

new_table_name = old_table_name.groupby(['col','col3']).agg({'col4':'sum'})

Назначение команды: