为了账号安全,请及时绑定邮箱和手机立即绑定

熊猫将帧的移动平均值附加到帧

熊猫将帧的移动平均值附加到帧

宝慕林4294392 2022-07-26 09:25:02
我可以获取一列的 SMA,然后将其附加到数据框而不会出现问题但是然后我尝试获取满足特定标准的列值的 SMA(所有行的子集,在我的情况下,在最后一个averaging_period homegames df[ df.ha =='H '] )我得到ValueError: Length of values does not match length of index我的代码是错误的,我正在按我想要的方式取主场比赛的移动平均线,但是当它进入客场比赛时它会删除该行,而不是在平均时跳过它们:sma = df[df.ha=='H'].f.rolling(window=averaging_period).mean()df['f_sma%s' % averaging_period] = sma.array这是我试图附加在一起的东西的长度len(df)   Out[3]: 12938len(sma.array)   Out[4]: 6458len(df[df.ha=='H'])   Out[5]: 6458任何人都知道我怎样才能让 sma 函数不平均客场比赛的目标,但仍然保留一行,即 sma 的值直到那个点?从而返回一个与我的数据框长度相同的数组?
查看完整描述

1 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

将滚动值分配给数据框时,您可以使用.loc过滤


import pandas as pd

import numpy as np


t = pd.DataFrame({'G':['a','a','h','a','h','a','a','h'],'scores':[3,2,1,5,3,1,6,5]})


t['avg'] = np.nan


t.loc[t.G=='h','avg'] = t[t.G=='h'].scores.rolling(window=2).mean()

输出:


   G  scores  avg

0  a       3  NaN

1  a       2  NaN

2  h       1  NaN

3  a       5  NaN

4  h       3  2.0

5  a       1  NaN

6  a       6  NaN

7  h       5  4.0


查看完整回答
反对 回复 2022-07-26
  • 1 回答
  • 0 关注
  • 71 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号