计算循环的简单移动平均熊猫

尔坎

我目前正在尝试计算几只股票的数据集的简单移动平均线。为了简化工作,我仅在两家公司(和4天的时间)上尝试了代码,但是输出似乎有些问题。下面是我的代码。

for index, row in df3.iloc[4:].iterrows():
    if df3.loc[index,'CompanyId'] == df3.loc[index-4,'CompanyId']:
        df3['SMA4'] = df3.iloc[:,1].rolling(window=4).mean()
    else:
        df3['SMA4'] = 0

这是输出:输出

数据框按日期和公司ID排序。所以需要发生的是,当公司编号与代码中规定的不相等时,输出应该为零,因为我无法计算两个不同公司的移动平均值。相反,它在第7、8、9行输出了两家公司的移动平均线。

安塞夫

采用 groupby.rolling

df['SMA4']=df.groupby('CompanyId',sort=False).rolling(window=4).Price.mean().reset_index(drop='CompanyId')
print(df)

    CompanyId  Price   SMA4
0           1     75    NaN
1           1     74    NaN
2           1     77    NaN
3           1     78  76.00
4           1     80  77.25
5           1     79  78.50
6           1     80  79.25
7           0     10    NaN
8           0      9    NaN
9           0     12    NaN
10          0     11  10.50
11          0     11  10.75
12          0      8  10.50
13          0      9   9.75
14          0      8   9.00
15          0      8   8.25
16          0     11   9.00

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

熊猫-无法计算移动平均值

来自分类Dev

Ruby:使用数组和循环-简单移动平均值

来自分类Dev

使用熊猫计算指数移动平均线

来自分类Dev

计算熊猫的平均行数

来自分类Dev

计算简单移动平均值时,TA-LIB缺少数据点

来自分类Dev

使用rolling()函数对基于时间的数据计算简单的移动平均值

来自分类Dev

计算简单移动平均值时,TA-LIB缺少数据点

来自分类Dev

通过分组计算熊猫数据框架上的累积移动平均值

来自分类Dev

计算多个移动平均交叉

来自分类Dev

如何计算熊猫的平均时间?

来自分类Dev

先前计算的移动平均线的移动平均线

来自分类Dev

python中的简单移动平均线

来自分类Dev

Python和熊猫-移动平均交叉

来自分类Dev

关于熊猫移动平均线的疑问

来自分类Dev

计算平均变化的更简单方法?

来自分类Dev

计算移动平均值和更新

来自分类Dev

使用CASE的MySQL移动平均计算

来自分类Dev

计算不重叠的移动平均值

来自分类Dev

如何计算日期列的移动平均天数

来自分类Dev

Python:计算指数移动平均值

来自分类Dev

计算“最右边”的移动平均线?

来自分类Dev

计算移动平均值和更新

来自分类Dev

移动平均函数matlab(不使用for循环)

来自分类Dev

熊猫计算每小时平均值

来自分类Dev

熊猫-计算时间戳的平均值

来自分类Dev

使用熊猫计算累积平均值

来自分类Dev

熊猫:如何计算分组平均值

来自分类Dev

熊猫计算每小时平均值

来自分类Dev

用熊猫计算每日平均值