繁体   English   中英

在 Pandas 中重塑数据框(带日期)

[英]Reshaping a Dataframe in pandas(With Date)

我有一个数据框,我希望将它塑造成我需要的方式。 这是我正在处理的数据框的精确副本...

stack_overflow = pd.DataFrame({'id': ['a1','a1','a1','a2','a2','a2','a3','a3','a3'],
                              'value': [10,20,0,33,64,21,87,55,4],
                               'schedule': [22,11,44,55,7,5,3,2,4],
                               'Date':['2020-09-13','2020-09-13','2020-09-13','2020-09-14','2020-09-14','2020-09-14',
                                       '2020-09-15','2020-09-15','2020-09-15']})

我想把它变成这种格式

          2020-09-13     2020-09-14     2020-09-15    
     Schedule Value  Schedule Value  Schedule Value 
a1      22      10      55      33       3       87
a2      11      20       7      64       2       55
a3      44       0       5      21       4        4

我不是数据人员,所以这就是我的目标。

pivot_table = pd.pivot_table(stack_overflow,values = ['schedule','value'],index = ['id'],columns = ['Date'])

如您所见,输出根本不是很可读。 有什么建议可以将输出转换为上述格式?

DataFrame.swaplevelDataFrame.sort_index DataFrame.swaplevel使用:

pivot_table = (pd.pivot_table(stack_overflow,values = ['schedule','value'],
                             index = ['id'],
                             columns = ['Date'])
                 .swaplevel(1,0, axis=1)
                 .sort_index(axis=1))
print (pivot_table)
Date 2020-09-13       2020-09-14            2020-09-15           
       schedule value   schedule      value   schedule      value
id                                                               
a1    25.666667  10.0        NaN        NaN        NaN        NaN
a2          NaN   NaN  22.333333  39.333333        NaN        NaN
a3          NaN   NaN        NaN        NaN        3.0  48.666667

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM