Ранжирование значений на основе двух столбцов - PullRequest
0 голосов
/ 24 сентября 2019

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

Данные выглядят так:

ID  TIME_ON_PHONE  MARGIN
1   1235           1256
2   12             124 
3   1635           0
4   124            652
5   0              4566

Любые предложения покак ранжировать их от лучших к худшим?

ID 5 = лучше всего, поскольку мы не тратили время на телефон, но их запас больше всего.

ID 3 = хуже, поскольку мы тратили целую вечность на телефоне, но не заказывали.

Я использовал Excel, чтобы попытаться найти решение, но не могу получить правильный рейтинг.

1 Ответ

1 голос
/ 24 сентября 2019

Я бы предложил создать новую метрику, например

Новая метрика = Маржа / Время на телефоне

для сравнения каждой строки.

Для созданиястолбец с этой метрикой просто используйте:

dataframe["new_metric"] = dataframe["MARGIN"]/dataframe["TIME_ON_PHONE"]

Наличие 0 значений в столбце TIME_ON_PHONE приведет к ошибке, поэтому я рекомендую заменить эти значения на очень маленькое, например, 0,001 или что-то подобное.

После этого вы можете просто использовать эту строку кода для сортировки строк:

dataframe = dataframe.sort_values("new_metric", ascending = False)

Таким образом, в результате вы получите первый идентификатор, который будет лучшим, а второй - второй... и т. д.

Надеюсь, это поможет.

...