熊猫,从数据框中的列创建MultIndex列

时间:2020-06-05 23:18:57

标签: python pandas multi-index

enter image description here

假设我有一个这样的数据框。该数据帧的索引是一个MultiIndex alredy日期/ id。 N列告知价格信息是N个周期之前的价格。如何将column ['N']转换为MultiIndex?

在此示例中,假设列N具有两个唯一值[0,1],最终结果将有6列,并且看起来应该像[0 / priceClose] [0 / priceLocal] [0 / priceUSD] [1 / priceClose] [1 / priceLocal] [1 / priceUSD]

1 个答案:

答案 0 :(得分:0)

我终于发现以下方法有效:

步骤1:融化

第2步:旋转

df = pd.melt(df, id_vars=['date', 'id', 'N'], 
                 value_vars=[p for p in df if p.startswith('price')], 
                 value_name='price')

df = pd.pivot_table(df, values='price', index=['date', 'id'],
                    columns=['variable', 'N'], aggfunc='max')