python - 对 pandas 中具有重复索引的数据框应用滚动平均函数

标签 python numpy pandas dataframe average-precision

我很难在包含重复索引的以下数据帧上使用 pd.rolling_mean 函数:

               amount
    20140101    3
    20140102    4
    20140103    3
    20140103    5
    20140103    1
    20140104    5
    20140105    6
    20140106    2
    …

我需要计算“金额”的 3 天平均值,例如,从 2014010120140103 的平均值应为 (3+4+3+ 5+1)/5=3.2,从20140104到20140106的金额平均值应为(5+6+2)/3=4.3

有人知道怎么做吗?预先感谢您!

最佳答案

你可以这样做:

>>> df
          amount
20140101       3
20140102       4
20140103       3
20140103       5
20140103       1
20140104       5
20140105       6
20140106       2
>>> xf = df.groupby(level=0)['amount'].agg(['sum', 'count'])
>>> xf
          sum  count
20140101    3      1
20140102    4      1
20140103    9      3
20140104    5      1
20140105    6      1
20140106    2      1
>>> pd.rolling_sum(xf['sum'], 3, 0) / pd.rolling_sum(xf['count'], 3, 0)
20140101    3.000
20140102    3.500
20140103    3.200
20140104    3.600
20140105    4.000
20140106    4.333
dtype: float64

您将分别获得 20140103201401063.24.3

关于python - 对 pandas 中具有重复索引的数据框应用滚动平均函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28651775/

相关文章:

python - 无法从 Django 中的设置文件中获取设置

Python:在生成器的开头插入元素

python - 交叉多个 2D np 数组以确定区域

python - 如何在 presto 中将列转换为行?

python - 为什么any()和pd.any()返回不同的值?

java - 模数和余数之间的差异

python - Flask-Restful - 返回带有嵌套数组的 json

python - 在另一个列表中编码列表元素存在的最有效方法

python - 如何有效地切片memmap?

python - Pandas :使用数据框的多列作为另一个的索引