对产品和分组求和

2022-01-09 00:00:00 python python-3.x pandas sum group-by

问题描述

我有一个如下所示的数据框:

I have a dataframe that looks like this:

allHoldingsFund

allHoldingsFund

      BrokerBestRate  notional_current  DistanceBestRate
0           CITI          7.859426e+05          0.023194
1           WFPBS         3.609674e+06         -0.023041
2           WFPBS         1.488828e+06         -0.023041
3           JPM           3.484168e+05         -0.106632
4           CITI          6.088499e+05          0.023194
5           WFPBS         8.665558e+06         -0.023041
6           WFPBS         4.219563e+05         -0.023041

我正在尝试一次完成求和积和分组(不创建额外的求和积列)

I am trying to do a sum product and a group by in one go (without creating an extra column of sum product)

这行代码我试过了

allHoldingsFund.groupby(['BrokerBestRate'])['notional_current']*['DistanceBestRate'].sum() 

如何进行求和,然后使用 group by 进行聚合?

how can I do a sum product and then aggregate it using group by?

期望的输出

BrokerBestRate      product of (notional_current  and DistanceBestRate)
   CITI              654654645665466
   JPM               453454534545367
  WFPBS              345345345345435

非常感谢


解决方案

可以在groupby之前建product栏

You can build the product column before the groupby

df.assign(col=df.notional_current*df.DistanceBestRate).groupby('BrokerBestRate',as_index=False).col.sum()
Out[372]: 
  BrokerBestRate            col
0           CITI   32350.817245
1            JPM  -37152.380218
2          WFPBS -326860.001568

相关文章