joa*_*avf 1 python python-3.x pandas
我使用以下代码将 ohlc(开盘价、最高价、最低价、收盘价)价格分组为每月总计。
df = df.groupby(pd.Grouper(freq='M',level=0,label='left')).agg(ohlc_dict)
Run Code Online (Sandbox Code Playgroud)
该代码可以完美地聚合几分钟、几天和几周的时间。但是,当我聚合几个月时,它会返回上个月最后一天的日期时间值(而不是实际月份的第一天)。例如:
datetime
2004-05-31 20:59:00
Run Code Online (Sandbox Code Playgroud)
正在聚合为:
datetime
2004-04-30
Run Code Online (Sandbox Code Playgroud)
如果我使用label='right'它就会返回我2005-05-31,这条语句所需的值是2005-05-01。为什么会发生这种情况?实现预期效果的最佳方法是什么?
谢谢
正如@MaxU 所提供的,使用freq='MS'而不是'M'. 您可以在此处查看所有可能的频率:
http://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#timeseries-offset-aliases