熊猫将列值转换为单独的列,保持数据框结构

时间:2020-03-25 13:57:49

标签: python pandas pandas-groupby transform

关于如何进行这种类型的转换,有很多建议,但是我可以这样做,但是无法保留原始的数据帧结构。我相信我即将解决这个问题...

我的数据如下:

    user     date         flag      value
0    ron  12/21/2021       home     0  
1    ron  12/21/2016      office    2 
2    ron  12/22/2016      diner     10
3  april   12/21/2016     office    5  
4  april  12/23/2016      home      6  
5   andy   12/23/2016     diner     1

我想按用户和日期分组,然后将flag + value转换为自己的列,如下所示:

    user     date         home   office   diner  
0    ron  12/21/2021       0        0       0
1    ron  12/21/2016       0        2       0
2    ron  12/22/2016       0        0      10
3  april   12/21/2016      0        5       0
4  april  12/23/2016       6        0       0  
5   andy   12/23/2016      0        0       1

如果没有值,则0也可以是nans,那很好。我使用了以下代码:

sample = sample.groupby(['user','date','flag'])['value'].first().unstack()

哪个可以正常工作,但是将用户和日期压缩到索引中就像这样:

        Index
('ron','12/23/2016')

在执行此转换时如何维护原始数据帧?

0 个答案:

没有答案