我的pandas数据框如下所示:
VTI VOO VGK IEV
2017-06-20 125.5809 224.3456 55.2675 44.43
2017-06-21 125.1100 223.5591 54.8000 44.05
2017-06-22 124.7800 223.1609 54.8200 44.06
2017-06-23 124.8100 223.1200 54.8400 44.10
我跑
m_price = price.resample('BM', how=lambda x: x[-1])
有效,但告诉我:“FutureWarning:如何在.resample()中弃用 新语法是.resample(...).. apply()“
有人可以帮助我使用新语法吗?谢谢 (Py 3.6.1 / Pandas 0.20.2)
答案 0 :(得分:1)
v0.18。0(2016年3月13日)文件说,
API打破.resample方法的更改,使其更像.groupby,see here。
您可以在重新采样器对象上使用these函数。
我的回答是,
m_price = price.resample('BM').last()
print(m_price)
VTI VOO VGK IEV
2017-06-30 124.81 223.12 54.84 44.1
答案 1 :(得分:1)
DataFrame.resample()
返回Resampler
个对象。然后你可以使用其中一种方法:http://pandas.pydata.org/pandas-docs/stable/api.html#resampling
在这种情况下,您需要last()
:
m_price = price.resample('BM').last()
答案 2 :(得分:1)
如果您不需要在降频采样频率上汇总数据,可以使用pd.DataFrame.asfreq
df.asfreq('BM')