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

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

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

回首忆惘然 2021-10-12 17:23:49
我正在尝试计算 2009 年至 2018 年之间给定工作日发布社交媒体帖子次数的加权平均值。这是我的代码:weight = fb_posts2[fb_posts2['title']=='status'].groupby('year',as_index=False).apply(lambda x: (x.count())/x.sum())我想要做的是按年份和工作日分组,计算一年中每个工作日发生的次数,然后除以每年的帖子总数。这个想法是返回一个数据帧,其中包含 2009 年到 2018 年之间每个工作日发生的次数的加权平均值。这是我正在与之交互的数据框的示例:
查看完整描述

1 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

使用.value_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


查看完整回答
反对 回复 2021-10-12
  • 1 回答
  • 0 关注
  • 147 浏览
慕课专栏
更多

添加回答

举报

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