【发布时间】:2018-09-04 12:42:23
【问题描述】:
我使用以下代码对“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”开始的“货币”开始的双重排名
【问题讨论】:
-
如果我没记错的话,如果两个值相同,pandas 会保持顺序。你试过
brkrcy.sort(['currency'], ascending=[False]).sort(['Gross Loan Amount'], ascending=[False])吗? -
@maow 谢谢。我已经尝试过您的答案,但它仅对“总贷款金额”进行排序。这不是我要找的双重排序。
-
我不确定我是否正确理解您想要的内容。您能否为您的示例提供第一个或所需输出的行?
标签: python python-2.7 pandas grouping pandas-groupby