python - Pandas DataFrame - 将行拆分为 n 个窗口,将窗口移动 m 个元素,找到平均值
问题描述
我有一个 DataFrame,该列包含(例如)30 行,您需要将它们拆分为 5 个元素的窗口,将每个窗口相对于另一个窗口移动 4 个元素并找到沿行的平均值。应该还剩 10 行。行数和窗口大小可以是任意的。是否有某种机制可以在熊猫中移动窗口和计算值? 例子
解决方案
@CrazyElf 的示例解决方案
import pandas as pd
df = pd.DataFrame({'feature': [i + j + i / 10 for i in range(6) for j in range(1, 6)]})
df_new = pd.DataFrame([[df.iloc[j + i * 4, 0] if i - 1 < j < i + 5 else pd.NA for i in range(6)] for j in range(10)])
new_feature_mean = df_new.sum(axis=1) / (~df_new.isna()).sum(axis=1)
推荐阅读
- azure - Graph API 可以替代 Azure 门户吗?
- node.js - 以编程方式安装或更新到最新版本的全局包的最快方法是什么?
- javascript - 尝试更新 chart.js 图表中的数据
- java - 动态想在cardview中上传图片
- python - 从用户名 Discord.py 获取用户 ID
- javascript - 如何在 Stripe Checkout 中添加运费总额?
- rust - 在实现的函数 Rust 中为 self struct 赋值
- c# - 运算符 '!=' 不能应用于 SelectListItem 类型的操作数
- azure-web-app-service - 在 Azure 应用服务中使用“容器注册表”和“WebHook”进行部署无法正常工作
- python - Django / Heroku 部署 - ModuleNotFoundError:“没有名为 'django' 的模块”