我有这样一个df:
month | stock | MV |
---|---|---|
1994-07 | A | 50 |
1994-07 | B | 60 |
1994-07 | C | 70 |
1994-07 | D | 80 |
1994-08 | A | 90 |
1994-08 | B | 60 |
1994-08 | C | 70 |
1994-08 | D | 95 |
1994-08 | E | 100 |
1994-08 | F | 110 |
我想将我的df细分为每月最高MV的50%.1994年7月,我只有4支股票,所以50%将是最高的2支.在接下来的一个月里,我有6只股票,这给了我3个最高值:
month | stock | MV |
---|---|---|
1994-07 | C | 70 |
1994-07 | D | 80 |
1994-08 | D | 95 |
1994-08 | E | 100 |
1994-08 | F | 110 |
我试过:
df = df.groupby(pd.Grouper(freq="M")).nlargest(2, "MV")
但我得到了一个错误:AttributeError:'DataFrameGroupBy'对象没有属性'NLAGEST'