如何在“ groupby”上执行操作,例如美元权重及其他

时间:2019-02-12 13:40:28

标签: python python-3.x group-by pandas-groupby

全部

我有一个看起来像这样的DF:

allHoldingsLookUp[['carry_dt','sedol','notional_current','carry_rate']]

        carry_dt    sedol  notional_current  carry_rate
21579 2018-05-18  B27WYK0      1.476290e+05       75.00
21659 2018-05-18  6433912      2.029608e+02       40.00
21992 2018-05-18  2386009      3.002272e+05      100.00
22453 2018-05-18  B671GT8      1.610390e+06       75.00
22700 2018-05-18  6350260      2.582623e+06       55.00
22722 2018-05-18  6418801      1.947338e+06       75.00
22839 2018-05-18  6683416      3.062509e+02      600.00
22917 2018-05-18  6180230      2.594927e+06       40.67
23011 2018-05-18  7302215      2.774702e+05      125.00
23043 2018-05-18  B04QR13      1.113231e+06       60.00
23069 2018-05-18  BYXZ2W5      4.182451e+05      100.00
23120 2018-05-18  6444066      9.507816e+05       35.00
23136 2018-05-18  6683449      1.701068e+06       35.00
23476 2018-05-18  BDVLJ72      1.004499e+07       40.00
23491 2018-05-18  BDVLJ72      1.875754e+05      200.00
23533 2018-05-18  B73XCZ3      3.313149e+02       40.00
23595 2018-05-18  BF20GG0      6.167594e+05      150.00
23620 2018-05-18  B671GT8      9.426840e+05       50.00
23674 2018-05-18  2599131      5.370326e+04      500.00
23824 2018-05-18  6568610      2.244832e+06       35.00
23831 2018-05-18  2311120      1.158353e+06       50.00
23836 2018-05-18  B04QR13      6.560241e+05      125.00
23914 2018-05-18  2599131      1.127563e+06      100.00
23926 2018-05-18  B3L2NF1      2.280907e+06       42.51
24014 2018-05-18  6771645      2.457539e+06       40.00
24067 2018-05-18  6536684      2.954588e+05      100.00
24238 2018-05-18  B613DJ9      1.055963e+06       47.00
24240 2018-05-18  2458771      6.187657e+02       20.00
24294 2018-05-18  6490917      2.855108e+06       35.00
24414 2018-05-18  2639349      1.483675e+05       50.00

例如,我通常通常很容易地进行标准分组操作

allHoldingsLookUp.groupby(['carry_dt', 'sedol'], as_index=False)['carry_rate'].agg({"availMin": "min", "availSum":lambda x: sum(x)})

现在我想通过涉及另一列'notional_current'对groupby进行操作

如何“名义上”加权“ carry_rate”列?即

在excel中,可能与此类似。

sumproduct(allHoldingsLookUp['notional_current'],allHoldingsLookUp['carry_rate'])/sum(allHoldingsLookUp['notional_current'])

更一般而言,如何通过涉及另一列来对“分组依据”执行操作?

非常感谢

0 个答案:

没有答案