У меня есть три столбца, которые я хочу ранжировать на основе определенных весов. Вот пример фрейма данных, с которым я работаю:
Sales Revenue Product Count Average Sales/Product
1005650 30 33521.67
100223 5 20044.60
72233 2 36116.50
1005657 13 77358.23
1002233 25 40089.32
Я хочу создать ранжирование, в котором, например, 45% от веса среднестатистических продаж / продукта, 35% веса от выручки от продаж и 20% веса по количеству продуктов. Я знаю, что в pandas это может быть сделано:
col1 = sales["Sales Revenue"].astype(str)
col2 = sales["Average Sales/Product"].astype(str)
col3 = sales["Product Count"].astype(str)
sales['Rank'] = (col2+col1+col3).astype('int64').rank(method='dense', ascending=False).astype(int64)
sales = sales.sort_values('Rank')
Но я не понимаю, как работает этот метод, потому что он действительно ранжируется, но логика c за ним мне не кажется Понимаю. Есть ли способ, которым я могу создать систему ранжирования, которая на основе процентных весов будет в состоянии создать ранжирование с повышенным акцентом на Средний объем продаж / продукт, затем Доход от продаж, затем Количество продуктов.