我使用以下代码完成了基于“CPTY”和“货币”组的双重求和:
brkrcy=data.groupby(['CPTY','currency'], as_index=False).agg({"Gross Loan Amount": "sum"})
导致以下输出:
CPTY currency Gross Loan Amount
0 BARC EUR 2.683000e+09
1 BARC GBP 6.091100e+09
2 BARC SEK 2.174349e+08
3 BARC USD 5.993229e+09
4 BARC ZAR 1.126837e+08
5 BMON GBP 7.846989e+06
6 BMON USD 7.758432e+08
7 BNP EUR 3.204291e+09
8 BNP GBP 2.953117e+09
9 BNP JPY 2.642923e+08
10 BNP USD 3.511912e+09
11 CALIP EUR 5.598966e+06
12 CALIP GBP 3.319806e+09
13 CALIP USD 8.736326e+08
14 CANTR USD 3.142870e+08
15 CIBC CAD 5.545886e+08
16 CIBC GBP 1.099860e+09
17 CITI CZK 2.941352e+07
我希望根据“CPTY”的“总贷款额”和“货币”的总和对表“brkrcy”进行排名。注意我有一个旧版本的熊猫所以“sort_values”不起作用我。我试过了
brkrcy.sort(['Gross Loan Amount'], ascending=[False])
但它仅根据“总贷款额”排名。期望的输出应首先以“CPTY”的最高总“贷款金额”值开始,然后按降序排列“货币”。这就像是从“CPTY”开始,然后是“货币”的双重排名
答案 0 :(得分:0)
这是另一个让自己清楚的例子
df = pd.DataFrame({'a': ['A', 'A','A', 'B', 'B','B'], 'b': ['A1', 'A2','A3' ,'B1', 'B2','B3'], 'c': ['2','3','4','5','6','1'] })
>>> df
a b c
0 A A1 2
1 A A2 3
2 A A3 4
3 B B1 5
4 B B2 6
5 B B3 1
期望的输出
>>> df
a b c
4 B B2 6
3 B B1 5
5 B B3 1
2 A A3 4
1 A A2 3
0 A A1 2
如您所见,它是基于列a然后列b的双重排名。我们首先从最高的B开始,在B中我们也从最高的开始,即B2