pandas PIVOT_TABLE保持索引

2022-03-03 00:00:00 python pandas pivot pivot-table

问题描述

我有一个数据帧:

import pandas as pd

data = {'day_bucket': ['2011-01-21', '2011-01-22', '2011-01-23', '2011-01-24'], 'label': ['birds', 'birds', 'birds', 'birds'], 'numeric_value': [4, 0, 7, 3]}

df = pd.DataFrame(data)

   day_bucket  label  numeric_value
0  2011-01-21  birds              4
1  2011-01-22  birds              0
2  2011-01-23  birds              7
3  2011-01-24  birds              3

我要透视此数据帧,以便有一个列birds,其值在其下方。

pd.pivot_table(df, values='numeric_value', index='day_bucket',columns='label')  

给予:

label       birds
day_bucket             
2011-01-21  4
2011-01-22  0
2011-01-23  7
2011-01-24  3

要保留索引,我应该做些什么?结果如下所示:

    day_bucket birds    
0   2011-01-21  4
1   2011-01-22  0
2   2011-01-23  7
3   2011-01-24  3 

解决方案

set_indexappend

df.set_index(['day_bucket', 'label'], append=True) 
  .rename_axis([None, None, None]).squeeze().unstack()


              birds
0 2011-01-21      4
1 2011-01-22      0
2 2011-01-23      7
3 2011-01-24      3

相关文章