Return 数据帧从枢轴状态到原始状态

Return dataframe to original state from pivot state

我目前正在尝试 return 在对旋转数据帧执行一些操作后将数据帧恢复到其原始状态。

我基本上有一个看起来像这样的数据框:

使用 pivot 转换数据框并对其执行一些操作后,数据框看起来像这样,其中每一行由 date 表示,每一列都是 appkey+cc 的唯一组合,值为target.

除此之外,我还在 total 下添加了目标总和的聚合,它每天总结 targetappkey_total 每天总结 target 但是仅适用于 appkey.

想法是 return 旋转 table 到它的原始状态 + totalappkey_total 作为添加的列。

我的问题是我没有将 appkeycc 作为主元 table 中的列,而是将 appkeycc 连接起来,所以我不确定如何 return 它回来? 我无法融化它,因为我没有原始的列名。

任何帮助将不胜感激,谢谢!

编辑 在尝试了@jezrael 的建议后,我得到了以下输出: 可以看出,appkey 被添加为索引,而 3 个唯一的 appkey 被保留为列名。

total 添加到 MultiIndex 的索引中,然后拆分列并按 DataFrame.stack 重塑:

df1 = df.set_index('total', append=True)
df1.columns = df1.columns.str.split('_', expand=True)
df1 = df1.rename_axis(['cc','appkey'], axis=1).stack([0, 1]).reset_index()