df = pd.DataFrame({'Strategy': ['AAPL', 'AAPL', 'MSFT', 'MSFT', 'GOOGL','GOOGL', 'SPY'],
'Attr':['LS', 'LS', 'LS', 'LS', 'LS', 'LS', 'MH'],
'Type': ['Equity', 'Swap', 'Equity', 'Put Option', 'Equity', 'Forward', 'Equity'],
'P&L': [2131, -304, -988, -10, 91710, -80, 10000],
'MV': [90000, -1000, 981231, -4000, 128123, -89, -900000]
}
)
我已经按属性、策略和类型对上述 Dataframe 进行了分组。
df.groupby(['Attr', 'Strategy', 'Type'])['P&L', 'MV'].sum()
P&L MV
Attr Strategy Type
LS AAPL Equity 2131 90000
Swap -304 -1000
GOOGL Equity 91710 128123
Forward -80 -89
MSFT Equity -988 981231
Put Option -10 -4000
MH SPY Equity 10000 -900000
我如何按以下索引对上面LS部分的策略进行排序:
df.loc[df['Attr'] == 'LS'].groupby(['Strategy'])['P&L'].sum().sort_values(ascending = False)
Strategy
GOOGL 91630
AAPL 1827
MSFT -998
2条答案
按热度按时间ruarlubt1#
IIUC,你想要这个:
输出:
gywdnpxw2#
我觉得你只需要:
输出: