【问题标题】:Get past 20 rows in a column在一列中超过 20 行
【发布时间】:2020-05-31 20:53:20
【问题描述】:

我正在尝试从名为 data 的数据框中计算股票数据的 20 天简单移动平均线 这些是数据框的列名: 1. open 2. high 3. low 4. close 5. SMA

我希望 SMA 中的每个值都是 4. close 中过去 20 个值的平均值 我尝试使用 data['5. SMA'] = np.average(data['4. close'][:21]) 但它仅在整个数据列中返回一个值(这是可以理解的,因为代码仅适用于前 20 个值)。但是,对于5. SMA 中的每一行,我想使用4. close 中过去的20 个值。 我如何使用 numpy 或 pandas 来实现它?

【问题讨论】:

  • 试试df.rolling是什么意思?

标签: python pandas numpy


【解决方案1】:

通常在谷歌上搜索 pandas 文档会得到很好的结果。试试this 或许:

s = pd.Series([1, 2, 3, 4])
s.rolling(2).mean()
0    NaN
1    1.5
2    2.5
3    3.5
dtype: float64

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-11
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多