如果只想{重采样一次},则只需DatetimeIndex
,因此添加了
各个级别的DataFrame.reset_index
都没有先执行,然后使用自定义功能进行分组和重采样,因为未实现pct_change
的{{1}}:
resample
另一个想法是为def percent_change(x):
return pd.Series(x).pct_change()
使用numpy解决方案:
pct_change
def percent_change(x):
return x / np.concatenate(([np.nan],x[:-1])) - 1
这样,每个月都会为每周更改生成4个值
因此似乎没有df1 = (df.reset_index(level=[1,2,3])
.groupby(['month','week'])['Adj Close']
.resample('W')
.apply(percent_change))
,只有groupby
和链Series.pct_change
之类的必要下采样了:
sum
,
删除不需要的索引。 datetime索引足以进行重新采样/分组
df.index = df.index.droplevel(['month','week','day'])
按周重新采样,选择所需的列,添加聚合函数,然后计算百分比变化。
df.resample('W')['Adj Close'].mean().pct_change()
本文链接:https://www.f2er.com/3165501.html