如何将具有相同索引(MultiIndex之一)的行值转换为列

时间:2019-10-16 03:40:16

标签: python pandas

我想知道是否有人可以帮助我解决这个问题, 我数据框的索引是2019-month-day(date)和0,1,2,3(小时)

我的数据框是这样的:

[In]
g = df3.groupby(['Date', 'hourss'], sort=False).screen_status.agg(['sum'])
#reset index 
idx = pd.MultiIndex.from_product([g.index.levels[0], [0, 1, 2, 3]])
h = g.reindex(idx,fill_value=0)  
h

------------------------------------
[out]
                sum
-----------------------------
2019-08-30  0     0
            1     0
            2     0
            3     45
2019-08-31  0     62
            1     6
            2     0
            3     31
2019-09-01  0     6
            1     26
            2     110
            3     178
...

但是我想像这样更改框架:

              0     1     2      3
---------------------------------------------
2019-08-30    0     0     0      45
2019-08-31    62    6     0      32
2019-09-01    6     26    110    178 

希望获得一些建议。 谢谢!

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找的是h.unstack()

编辑: 只需在末尾添加:

h = h.unstack()['sum']  # select sub dataframe 'sum'. In this way you won't have 'sum' as header.
h