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)