熊猫折叠和堆叠多级列

时间:2019-07-15 14:06:41

标签: python pandas

我想分解多级列并将它们作为列值。

原始数据输入(excel):

enter image description here

在数据框中读取的内容:

  Company Name Company code 2017-01-01 00:00:00 Unnamed: 3 Unnamed: 4 Unnamed: 5 2017-02-01 00:00:00 Unnamed: 7 Unnamed: 8 Unnamed: 9 2017-03-01 00:00:00 Unnamed: 11 Unnamed: 12 Unnamed: 13
0          NaN          NaN           Product A  Product B  Product C  Product D           Product A  Product B  Product C  Product D           Product A   Product B   Product C   Product D
1    Company A         #123                   1          5          3          5                   0          2          3          4                   0           1           2           3
2    Company B         #124                 600        208         30         20                 600        213         30         15                 600         232          30          12
3    Company C         #125                 520        112         47         15                 520        110         47         10                 520         111          47          15
4    Company D         #126                 420        165        120         31                 420        195        120         30                 420         182         120          58

预期数据框:

enter image description here

我已经尝试过stack()unstack()以及交换级别,但是我无法将dates列设置为'drop as row'。看起来Excel中的合并单元格将像数据帧中那样生成NaN -如果合并的列,则将有一个未命名的列。我该如何解决?我在这里错过了一些非常简单的事情吗?

1 个答案:

答案 0 :(得分:0)

使用stack

df.stack(level=0).reset_index(level=1)