如何使用熊猫按月和总小时制作数据透视表?

时间:2019-08-29 17:54:43

标签: python pandas pivot-table

我试图制作一个数据透视表,以显示按月分隔的工作时间总和。我在制作数据透视表方面很成功,但是我仍然想找出如何在每个月进行分离。

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

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

这是我当前正在使用的代码: 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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

尝试一下:

pivot = pd.pivot_table(WorkTypeT, values='hours_actual', index=['Agreement', 'work_type'], columns=['MONTH'], aggfunc='sum')