python - 如何计算特定日期之间数据框索引的每周平均值?
问题描述
我正在尝试计算 Netflix 股票开盘价和收盘价的每周平均走势。每周平均值需要返回 和 之间的时间start
段end
。移动索引是我正在操作的数据框的一部分,称为nflx_Frame
.
open close movement py_date
2020-03-06 367.70 368.97 1.27 2020-03-06
2020-03-05 381.00 372.78 -8.22 2020-03-05
2020-03-04 377.77 383.79 6.02 2020-03-04
2020-03-03 381.03 368.77 -12.26 2020-03-03
2020-03-02 373.11 381.05 7.94 2020-03-02
... ... ... ... ...
2019-10-18 289.36 275.30 -14.06 2019-10-18
2019-10-17 304.49 293.35 -11.14 2019-10-17
2019-10-16 283.12 286.28 3.16 2019-10-16
2019-10-15 283.82 284.25 0.43 2019-10-15
2019-10-14 283.93 285.53 1.60 2019-10-14
这是我的代码:
start = create_py_date_from_str('2020-02-06') #inital date
end = create_py_date_from_str('2020-03-06')
def week_avg(df, start):
return df['movement'].resample('W').mean().between(start, end, inclusive = True)
week_avg(nflx_Frame, start)
nflx_Frame
但它返回:TypeError:'float'和'datetime.datetime'的实例之间不支持'> ='。我将不胜感激。
更新
我已经解决了这个问题。我已将其更改为:
def week_avg(df, time):
period = df[df['py_date'].between(time, end, inclusive = True)]
cut_off = datetime.strptime('2020-01-01','%Y-%m-%d')
if time < cut_off:
return('ERROR; dates out of range')
elif time > today:
return('ERROR; dates out of range')
else:
return period['movement'].resample('W').mean( '
现在它就像魔术一样工作。
解决方案
推荐阅读
- python - 目录:是一个目录
- python - 将numpy数组转换为图片
- javascript - 无法在图像绘图画布上更改颜色
- java - PDFBox PDAnnotation 中的多边形注释
- python - 执行以下脚本时遇到“TypeError:'WebElement' 类型的对象没有 len()”
- javascript - 在 gulp 服务器中刷新 AngularJS 页面后,显示错误无法 GET
- java - 将常规 TCP/IP 通信更改为 SSL
- asp.net-mvc-5 - 图标被动画取代?&?
- javascript - 如何使用 ESlint 解决警告:在返回语句中禁止赋值(无返回赋值)?
- javascript - 如何在 JavaScript 中检查变量值是否为 [""]