获取年月数的平均值

我试图找到每个月的平均“工作”数量。即 5 月(2011 年 5 月 + 2012 年 5 月 + 2013 年 5 月...2020 年 5 月)、6 月等创造的平均就业机会是多少?


NAME CLOSEDATE  JOBS  month year

A    2019-01-01 2     1     2019

B    2019-01-01 23    1     2019

C    2018-05-24 2     5     2018

D    2019-05-23 200   5     2019

E    2020-05-23 40    5     2020

F    2020-05-14 23    5     2020

G    2020-06-12 93    6     2020

我尝试过: pd.pivot_table(proj, index=['month'],values=['JOBS'],aggfunc=[np.sum,np.mean]) 这给了我当月每条记录的平均工作量,而不是总月的平均值。


在上面的示例数据集中,理想情况下我会得到 5 月份的 66.25 个工作岗位的结果。(2+200+40+23)/4


我觉得我缺少一些简单的东西,或者一种将表格格式化为:


Year Jan   Feb   Mar ..... Dec

2011 1000  4322  5322      2343

2012 3423  4322  5322      2343

...  1645  4322  5322      2343

2020 7895  3432  9999      2343

AVG. 3491  4099  6491 


红糖糍粑
浏览 92回答 1
1回答

交互式爱情

更新首先获取每年/每月的总和,然后计算跨年的平均值。by_month = (    proj.groupby([proj.CLOSEDATE.dt.year, proj.CLOSEDATE.dt.month]) # create the groupby object    .JOBS.sum() # select only the JOBS column and aggregate by sum    .unstack(0) # drop the 'year' level form MultiIndex and use as columns    .mean(axis=1) # areage across the years we just unstacked to axis1    .rename('avg_jobs')    .rename_axis('month'))print(by_month)month1    25.0000005    88.3333336    93.000000Name: avg_jobs, dtype: float64这将为您提供按月计算的平均工作总和(跨年份和姓名)。请注意,您可以跳过为年/月创建单独的列,只有在您想继续将它们用于其他计算时才将它们放入。by_month = (    proj.groupby('month') # create the groupby object    .JOBS.mean() # select only the JOBS column and aggregate by mean)print(by_month)month1    12.505    66.256    93.00Name: JOBS, dtype: float64
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python