创建数据透视表后,为什么我的原始列标题在Python pandas中不显示为数据类型(dtypes)?

时间:2016-04-23 06:31:42

标签: python pandas concatenation pivot-table

我一直无法找到相关信息;也许我问的是错误的问题,但是:

我已经从数据中创建了两个数据透视表:

In [1]:  Test1 = pd.pivot_table(data,index=['Date','Time','Basket'],
         values=['Total'],aggfunc=np.sum)

In [2]:  Test2 = pd.pivot_table(data,index=['Date','Time','Basket'],
         values=['Total'],aggfunc=len)

分别计算每个篮子的总量和每个篮子的物品数量。我得到一个输出作为每个的DataFrame,但是,输出创建'Total'作为列标题高于其他原始列标题(在下面的情况下为每个篮子的数量)并且还有空单元格。

                                 Total
Date         Time       Basket  
07/29/05    10:00:04    103885   35.95
            10:00:12    100984   28.97

当我连接这些新的DataFrames以获得每个篮子的数量和每个篮子的物品数量时,我得到了这个表:

                                Total   Total
Date        Time        Basket      
07/29/05    10:00:04    103885    9     35.95
            10:00:12    100984    8     28.97 

当我检查数据类型时,我得到的输出只显示Total和Total是数据类型。

Total    float64
Total    float64
dtype: object

我的问题是双重的:其他专栏发生了什么?我如何制作其他列标题...嗯,再次标题为dtypes与'Total'结果在同一行?谢谢你的帮助......

1 个答案:

答案 0 :(得分:0)

如果您查看pivot_table的使用情况,则['Date','Time','Basket']列将作为index传递,因此生成的DataFrame作为这三个变量index

您可以使用reset_index

pd.concat([Test1.reset_index(), Test2.reset_index()])