我在 pandas 数据框中导入了雅虎财经每日股票价格。我想用.resample()
通过获取每个月第一个每日报价的价格将其转换为每月股票价格。
.resample('MS', how='first')
返回每个月的正确价格but它将指数更改为每月的第一天,而一般来说,由于假期和周末,报价的每月第一天可能是每月的第二或第三天。
我该如何使用resample()
仅对现有日期进行重新采样而不更改它们?
我想你什么want is BMS http://pandas.pydata.org/pandas-docs/stable/timeseries.html#offset-aliases(营业月份开始):
.resample('BMS').first()
注意:在 pandas 0.18 之前,这是使用已弃用的how
kwarg:
.resample('BMS', how='first')
另一种选择是按月分组,并使用普通的 ol' groupby 获取第一个(例如使用nth http://pandas.pydata.org/pandas-docs/stable/generated/pandas.core.groupby.GroupBy.nth.html获取每组中的第一个条目):
.groupby(pd.Grouper(freq='M')).nth(0)
注意:在 pandas 0.21 之前,这是使用已弃用的TimeGrouper
:
.groupby(pd.TimeGrouper('M')).nth(0)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)