【问题标题】:Pandas rolling mean with variable window based on an different column基于不同列的具有可变窗口的 Pandas 滚动平均值
【发布时间】:2021-12-11 02:56:10
【问题描述】:

我想在一个窗口上执行滚动平均值,该窗口取决于我的 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 列窗口的系列 df.A 的滚动平均值。例如,如果 df.B[0] 值 3 my_series[0]=df.A.rolling(3).mean()[0] 等等 my_series[1] 等...

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

【问题讨论】:

    标签: python pandas dataframe rolling-computation


    【解决方案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]
    

    【讨论】:

      猜你喜欢
      • 2020-07-04
      • 2018-05-23
      • 2019-09-09
      • 2018-05-11
      • 2018-10-03
      • 1970-01-01
      • 1970-01-01
      • 2020-12-25
      • 1970-01-01
      相关资源
      最近更新 更多