我几乎复制了代码here,将我的每日股票数据转换为每周数据。它说的是.resample()中的args如何被弃用。我认为它要我做.max()
和.min()
之类的事情。有没有一个简洁的方法来做到这一点,以至于我不是每次都得到这个消息?
如果它有助于我的DataFrame:
Open High Low Close Adj Close Volume
Date
2017-10-23 4.99 5.04 4.94 4.94 4.94 13412313
2017-10-24 4.95 5.02 4.95 5.00 5.00 8655448
2017-10-25 5.02 5.05 5.00 5.05 5.05 13721794
2017-10-26 4.98 5.00 4.82 4.87 4.87 26708894
2017-10-27 4.88 4.91 4.77 4.79 4.79 25369776
2017-10-30 4.85 4.85 4.72 4.74 4.74 13791695
2017-10-31 4.73 4.73 4.64 4.64 4.64 20530300
2017-11-01 4.76 4.79 4.67 4.68 4.68 18949283
2017-11-02 4.76 4.92 4.76 4.87 4.87 18523514
2017-11-03 4.88 4.90 4.76 4.80 4.80 13961895
2017-11-06 4.83 4.86 4.80 4.80 4.80 10856694
2017-11-07 4.92 5.06 4.91 5.03 5.03 24469556
2017-11-08 4.96 4.98 4.88 4.90 4.90 19049326
2017-11-09 4.96 4.96 4.88 4.88 4.88 12104442
2017-11-10 4.90 4.91 4.82 4.86 4.86 12412000
答案 0 :(得分:3)
在重新采样中使用agg
代替how
(在建议的代码链接中修改),即
output = df.resample('W').agg({'Open': take_first,
'High': 'max',
'Low': 'min',
'Close': take_last,
'Volume': 'sum'},
loffset = pd.offsets.timedelta(days=-6))
Open High Low Close Volume Date 2010-01-10 38.660000 40.700001 38.509998 40.290001 5925600 2010-01-17 40.209999 40.970001 39.279999 40.450001 6234600
警告说:
FutureWarning:新语法不推荐使用.resample() .resample(......)应用()
因此,我们可以使用聚合apply
代替agg
来传递函数的字典。