我需要回到月初,但如果我已经在月初,我想留在那里。 Pandas 锚定偏移量 n=0 应该正是这样做的,但它不会在 (-) MonthBegin 的锚定点之间产生预期结果。
例如对于这个pd.Timestamp('2017-01-06 00:00:00') - pd.tseries.offsets.MonthBegin(n=0)
我希望能把我搬回Timestamp('2017-01-01 00:00:00')
但我得到Timestamp('2017-02-01 00:00:00')
我究竟做错了什么?或者您认为这是一个错误?
我还可以看到相同的规则适用于 MonthEnd,因此将 2 个结合起来,如下所示pd.Timestamp('2017-01-06 00:00:00')+pd.tseries.offsets.MonthEnd(n=0)-pd.tseries.offsets.MonthBegin(n=1)
我得到了想要的效果Timestamp('2017-01-01 00:00:00')
但我希望它能够与- pd.tseries.offsets.MonthBegin(n=0)
要跳转到月初,请使用:
ts + pd.tseries.offsets.MonthEnd(n=0) - pd.tseries.offsets.MonthBegin(n=1)
是的,这很丑陋,但这是跳到本月第一的唯一方法,同时staying那里如果ts
已经是第一个了。
快速演示:
>>> pd.date_range(dt.datetime(2016,12,30), dt.datetime(2017,2,2)).to_series() \
+ MonthEnd(n=0) - MonthBegin(n=1)
2016-12-30 2016-12-01
2016-12-31 2016-12-01
2017-01-01 2017-01-01
2017-01-02 2017-01-01
...
2017-01-31 2017-01-01
2017-02-01 2017-02-01
2017-02-02 2017-02-01
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)