Pandas 基于不同列的变量 window 的滚动平均值

Pandas rolling mean with variable window based on an different column

我想对 window 执行滚动平均值,它根据我的 DataFrame 中列的值而变化。谁能帮我?这是一个起点:

import pandas as pd
import numpy as np

rng = np.random.default_rng()
df = pd.DataFrame(rng.integers(0, 100, size=(100, 2)), columns=list('AB'))
df.loc[:,'B']=df['B']//10

现在我想获得基于 B 列的 window 系列 df.A 的滚动平均值。例如,如果 df.B[0] 值 3 my_series[0]=df.A.rolling(3).mean()[0]依此类推 my_series[1] 等等...

你能帮帮我吗?非常感谢您的宝贵时间。

一个选项是遍历数据框,并为每一行分配一个等于 rolling_mean 的新列。

df['rolling_mean'] = np.nan
for ind in range(len(df)):
    df.loc[df.index[ind], 'rolling_mean'] = df.A.rolling(df.loc[df.index[ind], 'B']).mean()[ind]