Код: Выделить всё
orig | dest | type | class | BKT | BKT_order | value | fc_Cap | sc_Cap
-----+-------+-------+-------+--------+-----------+---------+--------+---------
AMD | TRY | SA | fc | MA | 1 | 12.04 | 20 | 50
AMD | TRY | SA | fc | TY | 2 | 11.5 | 20 | 50
AMD | TRY | SA | fc | NY | 3 | 17.7 | 20 | 50
AMD | TRY | SA | fc | MU | 4 | 09.7 | 20 | 50
AMD | TRY | PE | fc | RE | 1 | 09.7 | 20 | 50
AMD | TRY | PE | sc | EW | 5 | 07.7 | 20 | 50
NCL | MNK | PE | sc | PO | 2 | 08.7 | 20 | 50
NCL | MNK | PE | sc | TU | 3 | 12.5 | 20 | 50
NCL | MNK | PE | sc | MA | 1 | 16.7 | 20 | 50
Код: Выделить всё
orig | dest | type | max_BKT
-----+-------+-------+-----------
AMD | TRY | SA | TY
NCL | MNK | PE | PO
NCL | AGZ | PE | PO
Например, в приведенном выше сценарии
Поскольку Override DF устанавливает max_BKT как TY< /код> для AMD | ПОПРОБУЙТЕ | SA и порядок сегмента для TY равен 2 в исходном Df, мне нужно установить столбец value равным fc_Cap или sc_Capв зависимости от значения класса для всех строк, где BKT_order >= 2
Итак, в основном:
- фильтровать строки по orig dest type сочетание
- Получить BKT_order max_BKT из исходного DF
- для каждой строки, соответствующей вышеуказанным критериям
if class == fc обновить столбец значения с помощью fc_Cap
< li>if class == sc обновить столбец значения с помощью sc_Cap
Итак, наш исходный DF выглядит примерно так:
Код: Выделить всё
orig | dest | type | class | BKT | BKT_order | value | fc_Cap | sc_Cap
-----+-------+-------+-------+--------+-----------+---------+--------+---------
AMD | TRY | SA | fc | MA | 1 | 12.04 | 20 | 50
AMD | TRY | SA | fc | TY | 2 | 20 | 20 | 50
AMD | TRY | SA | fc | NY | 3 | 20 | 20 | 50
AMD | TRY | SA | fc | MU | 4 | 20 | 20 | 50
AMD | TRY | PE | fc | RE | 1 | 09.7 | 20 | 50
AMD | TRY | PE | sc | EW | 5 | 07.7 | 20 | 50
NCL | MNK | PE | sc | PO | 2 | 50 | 20 | 50
NCL | MNK | PE | sc | TU | 3 | 50 | 20 | 50
NCL | MNK | PE | sc | MA | 1 | 16.7 | 20 | 50
code> max_BKT из исходного df.
Надеюсь, это имеет смысл... я новичок в pandas.
Подробнее здесь: https://stackoverflow.com/questions/793 ... n-override
Мобильная версия