Set column names when stacking pandas DataFrame

后端 未结 3 1685
清歌不尽
清歌不尽 2021-02-02 11:29

When stacking a pandas DataFrame, a Series is returned. Normally after I stack a DataFrame, I convert it back into a DataFrame

3条回答
  •  轮回少年
    2021-02-02 11:58

    So here's one way that you may find a bit cleaner, using the fact that columns and Series can also carry names.

    In [45]: df
    Out[45]: 
                   value  value2
    id date                     
    1  2015-09-31    100     200
    2  2015-09-31     95      57
    3  2015-09-31     42      27
    
    In [46]: df.columns.name = 'var_name'
    
    In [47]: s = df.stack()
    
    In [48]: s.name = 'value'
    
    In [49]: s.reset_index()
    Out[49]: 
       id        date var_name  value
    0   1  2015-09-31    value    100
    1   1  2015-09-31   value2    200
    2   2  2015-09-31    value     95
    3   2  2015-09-31   value2     57
    4   3  2015-09-31    value     42
    5   3  2015-09-31   value2     27
    

提交回复
热议问题