Pandas (Python) 来自单一索引的多索引 pd.DataFrame

Pandas (Python) MultiIndex from Single Index pd.DataFrame

我有一个 df 看起来像:

设各个列的组名为'Symbol',这样列名列表 'Symbol' = ['AAPL US Equity', 'ABT US Equity', 'BDX US Equity', 'BRO US Equity'] 让 'Returns' 成为花车。 设 'Dates' 为日期时间索引。

问题: 我需要 df 具有 ['Ticker'、'Dates'] 的 MultiIndex,其层次结构是顺序,即 'Ticker' --> 'Dates' --> 'Returns'

类似于:

先按'Symbol'分组,再按'Date'

分组

使用DataFrame.unstack

df = df.set_index('Dates').unstack().rename_axis(['Symbol','Date']).to_frame('Close')

DataFrame.melt:

df = (df.melt('Dates', var_name='Symbol', value_name='Close')
        .set_index(['Symbol','Dates'])
        .sort_index())