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

Pandas resample by first day in my data

我在 pandas 数据框中导入了雅虎财经每日股票价格。我想用.resample()通过取每个月第一个报价的每日价格的价格将其转换为每月的股票价格。

.resample('MS', how='first')

returns 每个月的正确价格 它将索引更改为每月的第一天由于节假日和周末,价格可能在每月 2 号或 3 号。

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

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

.resample('BMS').first()

注意:在 pandas 0.18 之前,这是使用已弃用的 how kwarg:

.resample('BMS', how='first')

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

.groupby(pd.Grouper(freq='M')).nth(0)

注意:在 pandas 0.21 之前,这是使用已弃用的 TimeGrouper:

.groupby(pd.TimeGrouper('M')).nth(0)