Pandas在我的数据中第一天重新采样

Ami*_*min 6 python resampling dataframe pandas

我在大熊猫数据框中导入了雅虎财务每日股票价格.我想用.resample()每个月的第一个QUOTED每日价格将其转换为月度股票价格.

.resample('MS', how='first')
Run Code Online (Sandbox Code Playgroud)

返回每个月的正确价格,它会将指数更改为该月的第一天,而一般情况下,由于假期和周末,报价的月份的第一天可能是该月的第二天或第三天.

如何resample()仅使用重新采样现有日期而不更改它们来使用?

And*_*den 8

我想你想要的BMS(营业月开始):

.resample('BMS').first()
Run Code Online (Sandbox Code Playgroud)

注意:在早期的pandas中,这是使用已弃用的howkwarg 完成的:

.resample('BMS', how='first')
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用groupby month并使用普通的ol'groupby 获取第一个(例如,使用nth获取每个组中的第一个条目):

.groupby(pd.Grouper(freq='M')).nth(0)
Run Code Online (Sandbox Code Playgroud)

注意:在早期的pandas中,这是使用弃用的TimeGrouper:

.groupby(pd.TimeGrouper('M')).nth(0)
Run Code Online (Sandbox Code Playgroud)