Python 从我的数据帧计算加权平均值

Python 从我的数据帧计算加权平均值,python,pandas,group-by,data-science,Python,Pandas,Group By,Data Science,我试图计算2009-2018年间某个工作日社交媒体帖子发表次数的加权平均值 这是我的代码: weight = fb_posts2[fb_posts2['title']=='status'].groupby('year',as_index=False).apply(lambda x: (x.count())/x.sum()) 我想做的是按年度和工作日分组,计算一年中每个工作日发生的时间,然后除以每年的职位总数。我们的想法是返回一个数据帧,其加权平均值为2009年到2018年间每个工作日发生的次数

我试图计算2009-2018年间某个工作日社交媒体帖子发表次数的加权平均值

这是我的代码:

weight = fb_posts2[fb_posts2['title']=='status'].groupby('year',as_index=False).apply(lambda x: (x.count())/x.sum())
我想做的是按年度和工作日分组,计算一年中每个工作日发生的时间,然后除以每年的职位总数。我们的想法是返回一个数据帧,其加权平均值为2009年到2018年间每个工作日发生的次数

这是我正在与之交互的数据帧的一个示例:

使用带有normalize参数的
.value\u counts()
,仅按年份分组

样本数据 代码: 输出:
import pandas as pd
import numpy as np

np.random.seed(123)
df = pd.DataFrame({'year': np.random.choice([2010, 2011], 1000),
                   'weekday': np.random.choice(list('abcdefg'), 1000),
                   'val': np.random.normal(1, 10, 1000)})
df.groupby('year').weekday.value_counts(normalize=True)
year  weekday
2010  d          0.152083
      f          0.147917
      g          0.147917
      c          0.143750
      e          0.139583
      b          0.137500
      a          0.131250
2011  d          0.182692
      a          0.163462
      e          0.153846
      b          0.148077
      c          0.128846
      f          0.111538
      g          0.111538
Name: weekday, dtype: float64