【问题标题】:How to get the index of a pivot table as columns如何获取数据透视表的索引作为列
【发布时间】:2019-10-02 20:04:11
【问题描述】:

我正在尝试旋转我拥有的表格。它有 4 个主要列,还有大约 20 个其他无用的列。这些列是 Site、Category、Week_Beginning 和 Total_Hours。

我正在尝试按站点、类别和 week_beginning 合计总小时数。

我正在使用df.pivot_table 函数,它可以按照我的意愿进行操作,但输出需要一些修复。

效果很好,但我得到以下输出:

索引('sum','Total_Hours') ('Site1','Cat1',Timestamp('2019-12-23')) 725

我使用的代码是:

df2=df.pivot_table(index=['Site','Category','Week_Beginning'],values=['Total_Hours'],aggfunc=[np.sum],fill_value=0)

从数学角度来看,代码运行良好,也就是说,总和是正确的

输出是:

效果很好,但我得到以下输出:

索引('sum','Total_Hours') ('Site1','Cat1',Timestamp('2019-02-23')) 725

所以输出只有一列名称为 ('sum','Total_Hours')

我期待的是 4 列,如下所示:

Site       Category           Week_Beginning           Total_Hours
Site1        Cat1               2019-03-23                225
Site1        Cat1               2019-03-30                152 

任何帮助将不胜感激。 我通过 Spyder 3.3.3 使用 python 3.7.3

谢谢。

-公关。

【问题讨论】:

  • 你为什么不用groupby? Pivot 对于这项工作来说是一个非常不寻常的功能。

标签: python indexing pivot-table


【解决方案1】:

听起来你应该使用groupby -

df2=df.groupby(['Site','Category','Week_Beginning']).agg({"Total_Hours":"sum"}).reset_index()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-26
    • 2020-11-11
    • 1970-01-01
    • 2020-06-18
    • 1970-01-01
    • 2018-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多