问题描述
我有一个如下所示的数据框:
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