Помогите решить задачу с сводными таблицами в python

"Откуда и Куда представлено 3-х буквенными кодами.

День - это день недели, от 1 до 7."

Для каждой уникальной связки Откуда-Куда нужно выбрать одного наиболее выгодного поставщика.

Выгодный поставщик - это такой поставщик, который больше всего дней недели оказывался дешевле (то есть имел меньшую Стоимость) других поставщиков.

Исходная таблица имеет такой вид :

Исходная таблица

Я соединил столбцы "откуда" и "куда" в столбец "связь" так как по условию для каждого маршрута нам нужно выявить лучшего поставщика

Таблица 2

Сделал сводную таблицу по связям

    table = pd.pivot_table(dt, 
                   values=['Стоимость'], 
                   columns=['День'],
                   index=['Связь','Поставщик'], 
                   aggfunc=['count','sum'],
                   fill_value=0,
                   margins=True,
                   margins_name='ВСЕГО')

Получил таблицу удобного вида :

Сводная таблица

Теперь мне нужно определить поставщика, который больше всего дней недели оказывался дешевле. Для этого мне нужно каким-то образом добавить в полученную таблицу столбец с кол-вом дней , где кол-во заказов не равно нулю к каждой связи и к каждому поставщику в ней.

Например в связи AAQ-IAR у поставщика 30 всего 3 активных дня , а у поставщика 47 -- 7 . Сравним стоимость поставщиков в активные дни , где это возможно.

введите сюда описание изображения

Получается что наиболее выгодный поставщик в :

день 2 -- 47, день 4 -- 30,
день 7 -- 30

В результате получается , что поставщик 30 наиболее выгодный так как больше дней предоставляет меньшую стоимость.

Я столкнулся с такой проблемой , что когда я пытаюсь добавить новые столбцы в готовую сводную таблицу или произвести вычисления между строками и столбцами я получаю ошибку

    ---------------------------------------------------------------------------
>TypeError                                 Traceback (most recent call last)
<ipython-input-28-d8b2e41b61e7> in <module>()
----> 1 table.columns()

TypeError: 'MultiIndex' object is not callable

Пожалуйста помогите решить эту задачу, в результате нужно получить таблицу связь - наиболее выгодный поставщик. Алгоритм решения в голове есть , но какими методами его реализовать не понимаю.

Фрагмент таблицы с исходными данными : xlsx файл


Ответы (0 шт):