Pandas 在双列索引上转置

Pandas transpose on double column index

我有一个如下所示的数据框

我想像下面这样改造它

它是双列索引转换,我不介意 price/quantity 或日期是第一级列索引。我认为日期是最重要的并且拆分为 price/quantity 但无法像这样创建 table here.Its 一个包含大约一百万行和一年中所有日期的数据框,所以你有任何对此最有效代码的想法?空单元格也可以是 0s

样本数据

CID PROD_ID 价格 日期 数量
123 x 1 31-12-20 5
123 x 1 1-1-21 5
123 x 1 2-1-21 7
123 y 2 2-1-21 11
789 z 5 1-1-21 22
256 一个 4 1-1-21 9
324 b 4 1-1-21 16
789 z 5.5 2-1-21 22
324 一个 4.5 2-1-21 23
324 e 8 2-1-21 3

使用pandas.pivot_table

pd.pivot_table(
    df,
    values=['PRICE', 'QUANTITY'],
    index=['CID', 'PROD_ID'],
    columns=['DATE'],
    aggfunc=sum
)

输出

             PRICE                 QUANTITY                
DATE        1-1-21 2-1-21 31-12-20   1-1-21 2-1-21 31-12-20
CID PROD_ID                                                
123 x          1.0    1.0      1.0      5.0    7.0      5.0
    y          NaN    2.0      NaN      NaN   11.0      NaN
256 a          4.0    NaN      NaN      9.0    NaN      NaN
324 a          NaN    4.5      NaN      NaN   23.0      NaN
    b          4.0    NaN      NaN     16.0    NaN      NaN
    e          NaN    8.0      NaN      NaN    3.0      NaN
789 z          5.0    5.5      NaN     22.0   22.0      NaN