【问题标题】:double summation and rank by first attribute双重求和并按第一个属性排名
【发布时间】: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


【解决方案1】:

这是另一个让自己清楚的例子

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 开始

【讨论】:

  • 请问各位,我可以对此作出回应,还是我应该发布另一个问题?谢谢
猜你喜欢
  • 1970-01-01
  • 2018-06-23
  • 2013-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多