猿问

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

我正在尝试计算 2009 年至 2018 年之间给定工作日发布社交媒体帖子次数的加权平均值。

这是我的代码:

weight = fb_posts2[fb_posts2['title']=='status'].groupby('year',as_index=False).apply(lambda x: (x.count())/x.sum())

我想要做的是按年份和工作日分组,计算一年中每个工作日发生的次数,然后除以每年的帖子总数。这个想法是返回一个数据帧,其中包含 2009 年到 2018 年之间每个工作日发生的次数的加权平均值。

这是我正在与之交互的数据框的示例:

回首忆惘然
浏览 148回答 1
1回答

慕慕森

使用.value_counts()与规范化的说法,仅同比分组。样本数据import pandas as pdimport numpy as npnp.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  weekday2010  d          0.152083      f          0.147917      g          0.147917      c          0.143750      e          0.139583      b          0.137500      a          0.1312502011  d          0.182692      a          0.163462      e          0.153846      b          0.148077      c          0.128846      f          0.111538      g          0.111538Name: weekday, dtype: float64
随时随地看视频慕课网APP

相关分类

Python
我要回答