我试图理解为什么
print(pd.Timestamp("2015-01-01") - pd.DateOffset(day=1))
不会导致
pd.Timestamp("2014-12-31")
我正在使用 Pandas 0.18。我在 CET 时区内运行。
您可以检查pandas.tseries.offsets.DateOffset
:
*kwds
添加或替换偏移值的时间参数。
添加到偏移的参数(如 Timedelta):
年
months
weeks
天
小时
分钟
秒
微秒
纳秒
替换偏移值的参数:
year
month
天
工作日
小时
分钟
Second
微秒级
纳秒
print(pd.Timestamp("2015-01-01") - pd.DateOffset(days=1))
2014-12-31 00:00:00
另一个解决方案:
print(pd.Timestamp("2015-01-01") - pd.offsets.Day(1))
2014-12-31 00:00:00
也可以减去Timedelta
:
print(pd.Timestamp("2015-01-01") - pd.Timedelta(1, unit='d'))
pd.DateOffset(day=1)
起作用(即不引发错误),因为“day”是有效参数,“days”也是如此。
看的一个:“天”重置实际的一天,“天”添加到原来的一天。
pd.Timestamp ("2019-12-25") + pd.DateOffset (day= 1)
时间戳 ('2019-12-0100:00:00')
pd.Timestamp ("2019-12-25") + pd.DateOffset (天= 1)
时间戳 ('2019-12-2600:00:00')
Day (d) 和 DateOffset (days = d) 在具有时区信息的时间戳上使用时的行为不完全相同(至少在 pandas 0.18.0 上)。看起来 DateOffset 添加 1 天,同时保留小时信息,而 Day 仅添加 24 小时的经过时间。
>>> # 30/10/2016 02:00+02:00 is the hour before the DST change
>>> print(pd.Timestamp("2016-10-30 02:00+02:00", tz="Europe/Brussels") + pd.offsets.Day(1))
2016-10-31 01:00:00+01:00
>>> print(pd.Timestamp("2016-10-30 02:00+02:00", tz="Europe/Brussels") + pd.DateOffset(days=1))
2016-10-31 02:00:00+01:00
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(22条)