python - 获取没有重叠的滑动窗口平均值
问题描述
鉴于此数据框:
df = pd.DataFrame({ 'id_val' : [1,2,3,4,5] , 'c1': [1.0 , 2.0, 3.0,4.0,5.0]})
我试图返回 c1 行的每 2 个值的滑动窗口的平均值,没有重叠:
[1,2] , [3,4] , [5]
=的平均值[1.5 , 3.5, 5 ]
df.rolling(2)['c1'].mean()[1::2]
返回:
我认为这意味着采用大小为 2 的滚动窗口,计算“c1”的平均值,[1::2]
意味着从第二行开始并每隔第二行返回一次。这个对吗 ?
为了返回 [5] 这是最后一行的平均值,我可以为数据帧返回 c1 的最后一个值,但这似乎很笨重,有没有更清洁的方法?
解决方案
这种方式怎么样:
df.groupby(pd.cut(df['c1'],[0,2,4,6]))['c1'].mean().reset_index(drop=True)
结果是 :
0 1.5
1 3.5
2 5.0
Name: c1, dtype: float64
推荐阅读
- java - 移动到 FragmentB 并使用返回按钮返回时恢复适配器的 FragmentA 的 SparseBooleanArray?
- android - ViewPager2 方法 onPageSelected(int position) 返回不正确的位置
- google-apps-script - 为 Google 幻灯片中的所有对象设置动画
- tcl - How to "gray out" or disable tabs in ttkNotebook?
- r - KableExtra 表适用于编织按钮,但在从单独的文件呈现时不起作用
- string - 我们如何在特定分隔符之前连接向量元素并在 Rust 中创建新向量
- python - Python 多处理:循环文件以导出数据
- php - 如何使用 jQuery 和 AJAX 执行 php 函数
- android - Kotlin 中 Recyclerview 上的简单 JUnit 测试
- vue.js - 两个 Vue Roots,但只有一个 DIV