pythonpandas排名_python – Pandas按多列排名

该博客讨论了如何使用Pandas库在Python中对数据框进行多列排序。示例代码展示了如何根据'SaleCount'和'TotalRevenue'两列对数据框进行降序排名,并生成相应的Rank列。最终目标是创建一个按照这两个销售指标综合排名的数据框。
摘要由CSDN通过智能技术生成

我试图根据两列对大熊猫数据框进行排名.

我可以根据一列对其进行排名,但如何根据两列对其进行排名? ‘SaleCount’,然后’TotalRevenue’?

import pandas as pd

df = pd.DataFrame({'TotalRevenue':[300,9000,1000,750,500,2000,0,600,50,500],

'Date':['2016-12-02' for i in range(10)],

'SaleCount':[10,100,30,35,20,100,0,30,2,20],

'shops':['S3','S2','S1','S5','S4','S8','S6','S7','S9','S10']})

df['Rank'] = df.SaleCount.rank(method='dense',ascending = False).astype(int)

#df['Rank'] = df.TotalRevenue.rank(method='dense',ascending = False).astype(int)

df.sort_values(['Rank'], inplace=True)

print(df)

电流输出:

Date SaleCount TotalRevenue shops Rank

1 2016-12-02 100 9000 S2 1

5 2016-12-06 100 2000 S8 1

3 2016-12-04 35 750 S5 2

2 2016-12-03 30 1000 S1 3

7 2016-12-08 30 600 S7 3

9 2016-12-10 20 500 S10 4

4 2016-12-05 20 500 S4 4

0 2016-12-01 10 300 S3 5

8 2016-12-09 2 50 S9 6

6 2016-12-07 0 0 S6 7

我正在尝试生成这样的输出:

Date SaleCount TotalRevenue shops Rank

1 2016-12-02 100 9000 S2 1

5 2016-12-02 100 2000 S8 2

3 2016-12-02 35 750 S5 3

2 2016-12-02 30 1000 S1 4

7 2016-12-02 30 600 S7 5

9 2016-12-02 20 500 S10 6

4 2016-12-02 20 500 S4 6

0 2016-12-02 10 300 S3 7

8 2016-12-02 2 50 S9 8

6 2016-12-02 0 0 S6 9

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值