基于两列对值进行排名

时间:2019-09-24 05:19:12

标签: python ranking

我正在尝试设计一种根据电话的持续时间和保证金从好到坏对帐户进行排名的方法。

数据如下:

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 个答案:

答案 0 :(得分:1)

我建议创建一个新的指标

新指标=保证金/通话时间

比较每一行。

要使用此指标创建列,只需使用:

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

TIME_ON_PHONE列中的值为0会导致错误,因此我建议将这些值替换为一个很小的值,例如0.001之类的值。

之后,您可以简单地使用以下代码行对行进行排序:

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

这样,您将得到第一个ID是最好的ID,第二个ID是第二个最好的ID ...等等。

希望有帮助。