重塑熊猫中的数据框带日期

问题描述

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

stack_overflow = pd.DataFrame({'id': ['a1','a1','a2','a3','a3'],'value': [10,20,33,64,21,87,55,4],'schedule': [22,11,44,7,5,3,2,'Date':['2020-09-13','2020-09-13','2020-09-14','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一起使用:

pivot_table = (pd.pivot_table(stack_overflow,values = ['schedule','value'],index = ['id'],columns = ['Date'])
                 .swaplevel(1,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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...