首页 > 解决方案 > 如何使用熊猫按月和总小时制作数据透视表?

问题描述

我正在尝试制作一个数据透视表来显示按月分隔的工作时间总和。我成功地制作了一个数据透视表,但我也一直在试图弄清楚如何在一个月内分开。

这将被导出到一个 excel 文件中,该文件提供给客户,以显示我们在 x 个月内做了多少工作,并表明我们正在履行我们为他们提供多少 x 小时工作的协议。

我正在使用 python pandas 来存放我的数据。这是我尝试获取数据透视表。

这是我目前正在使用的代码: pivot = WorkTypeT.pivot_table(index=['Agreement','work_type'], values=['MONTH','hours_actual'], aggfunc=['sum'])

这是表格:

      Agreement     work_type         hours_actual   MONTH
0     Proactive     Client Management 5.25           May 
0     Proactive     Managed Services  2.25           May 
0     Proactive     Onsite            15.50          May 
0     Proactive     Remote            9.25           May 
0     Proactive     Client Management 5.00           June 
0     Proactive     Managed Services  2.25           June 
0     Proactive     Onsite            15.00          June 
0     Proactive     Remote            9.25           June 

输出当前的样子

                                        sum
                                        hours_actual
Agreement  work_type
Proactive  Client Management            10.25 
           Managed Services             4.50 
           Onsite                       30.50 
           Remote                       18.50 

如何更改它以使当前输出看起来像或类似于

                                        MONTH
                                        hours_actual
                                        May      June
Agreement  work_type
Proactive  Client Management            5.25     5.00
           Managed Services             2.25     2.25
           Onsite                       15.50    15.00
           Remote                       9.25     9.25

标签: pythonpandaspivot-table

解决方案


pivot_table 可以给出结果

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.pivot_table.html

pd.pivot_table(df, values='hours_actual', index=['Agreement', 'work_type'], columns=['MONTH'], aggfunc=np.sum, fill_value=0)



MONTH   June    May
Agreement   work_type       
Proactive   Client Management   5.00    5.25
Managed Services    2.25    2.25
Onsite  15.00   15.50
Remote  9.25    9.25

推荐阅读