为了账号安全,请及时绑定邮箱和手机立即绑定

获取年月数的平均值

获取年月数的平均值

红糖糍粑 2023-05-23 16:26:19
我试图找到每个月的平均“工作”数量。即 5 月(2011 年 5 月 + 2012 年 5 月 + 2013 年 5 月...2020 年 5 月)、6 月等创造的平均就业机会是多少?NAME CLOSEDATE  JOBS  month yearA    2019-01-01 2     1     2019B    2019-01-01 23    1     2019C    2018-05-24 2     5     2018D    2019-05-23 200   5     2019E    2020-05-23 40    5     2020F    2020-05-14 23    5     2020G    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 ..... Dec2011 1000  4322  5322      23432012 3423  4322  5322      2343...  1645  4322  5322      23432020 7895  3432  9999      2343AVG. 3491  4099  6491 
查看完整描述

1 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

更新


首先获取每年/每月的总和,然后计算跨年的平均值。


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)

month

1    25.000000

5    88.333333

6    93.000000

Name: 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)

month

1    12.50

5    66.25

6    93.00

Name: JOBS, dtype: float64


查看完整回答
反对 回复 2023-05-23
  • 1 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信