python - 扩展 groupby 对象的平均值

标签 python pandas

我有一个看起来像这样的数据框:

Name  Col1 Col2 Col3 DownIndicator 
A                     0
A                     1
B                     0
C                     0    
C                     1
C                     1

我想创建显示 DownIndicator 列的扩展平均值的列

所以期望的输出是

Name  Col1 Col2 Col3 DownIndicator MeanDown
A                     0             0
A                     1             0.5
B                     0             0
C                     0             0
C                     1             0.5
C                     1             0.66

你能帮忙吗? 我正在研究expanding_mean,但无法在实践中应用它

最佳答案

使用Expanding.meangroupby,但因为创建MultiIndex是必要的,通过reset_index(level=0, drop=True)删除第一级:

df['new'] = (df.groupby('Name')['DownIndicator']
               .expanding()
               .mean()
               .reset_index(level=0, drop=True))
print (df)
  Name  DownIndicator       new
0    A              0  0.000000
1    A              1  0.500000
2    B              0  0.000000
3    C              0  0.000000
4    C              1  0.500000
5    C              1  0.666667

关于python - 扩展 groupby 对象的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58851802/

相关文章:

python - JSESSIONID 和 PSESSIONID 与 cookie 和登录有何关系?

Python Scipy 指数曲线拟合

python - Matplotlib图形图例文本添加或修改

python - 在 Python pandas 中有选择地将 float 转换为整数和小数

python - 在 Python 中使用 None 作为字典键是否合理?

python - 如何覆盖文档查看器图标以在 Plone 中全屏查看?

python - 有没有办法让 python 中的海龟运行我创建的随机函数?

python - 如何计算 Pandas 中多列的特定值

python - 如何在 Jupyter 中向 Pandas 样式添加水平滚动

python - 获取两个具有缺失值的 DataFrame 的平均值