【问题标题】:Loop rolling mean python循环滚动意味着python
【发布时间】:2021-09-05 09:08:03
【问题描述】:

我正在尝试计算不同窗口大小的滚动平均值。

我有以下工作代码:

df['h1'] = (np.log1p(df['r1']) - np.log1p(df['r2'])) * 100

df['h3'] = df['h1'][beg_date:end_date].rolling(window=3).mean()
df['h6'] = df['h1'][beg_date:end_date].rolling(window=6).mean()
df['h12'] = df['h1'][beg_date:end_date].rolling(window=12).mean()

我想问是否有更优雅的方式来编写这段代码?也许在一个循环中。

任何提示都会有所帮助。

谢谢!

【问题讨论】:

    标签: python loops mean rolling-computation


    【解决方案1】:

    试试:

    for window in [3, 6, 12]:
        df[f"h{window}"] = df["h1"][beg_date:end_date].rolling(window=window).mean()
    

    【讨论】:

    • 大家好。我已经尝试了两种代码,它们都可以正常工作。非常感谢您的帮助!
    【解决方案2】:
    df['h1'] = (np.log1p(df['r1']) - np.log1p(df['r2'])) * 100
    windows = [3,6,12] # put whatever you want
    for my_window in windows:
        window_name = 'h'+str(my_window)
        df[window_name] = df['h1'][beg_date:end_date].rolling(window=my_window).mean()
    

    【讨论】:

      猜你喜欢
      • 2021-09-19
      • 2020-05-31
      • 2022-12-18
      • 2022-12-17
      • 2020-08-27
      • 1970-01-01
      • 2019-01-25
      • 2017-12-20
      • 2022-01-15
      相关资源
      最近更新 更多