Date 一天,后退一步

Date 一天,后退一步,date,pandas,Date,Pandas,我试着去理解为什么 print(pd.Timestamp("2015-01-01") - pd.DateOffset(day=1)) 不会导致 pd.Timestamp("2014-12-31") 我用的是熊猫0.18。我在CET时区内跑步。您可以检查: *kwds 添加或替换偏移值的时间参数。 添加到偏移的参数(如Timedelta): 年头 月份 周 日子 小时数 会议记录 秒 微秒 纳秒 替换偏移值的参数: 年 月 一天 平日 时辰 分钟 第二 微秒 纳秒 另一个解决方案:

我试着去理解为什么

print(pd.Timestamp("2015-01-01") - pd.DateOffset(day=1))
不会导致

pd.Timestamp("2014-12-31")
我用的是熊猫0.18。我在CET时区内跑步。

您可以检查:

*kwds
添加或替换偏移值的时间参数。
添加到偏移的参数(如Timedelta):

  • 年头
  • 月份
  • 日子
  • 小时数
  • 会议记录
  • 微秒
  • 纳秒
替换偏移值的参数:

  • 一天
  • 平日
  • 时辰
  • 分钟
  • 第二
  • 微秒
  • 纳秒

另一个解决方案:

print(pd.Timestamp("2015-01-01") - pd.offsets.Day(1))
2014-12-31 00:00:00
还可以减去
时间增量

print(pd.Timestamp("2015-01-01") - pd.Timedelta(1, unit='d'))
当在带有时区信息的时间戳上使用时(至少在0.18.0上),日期(d)和日期偏移量(days=d)的行为并不完全相同。看起来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
pd.DateOffset(day=1)
有效(即没有引发错误),因为“day”是一个有效参数,正如“days”一样

请看下面的一条:“”重置实际日期,”添加到原始日期

pd.时间戳(“2019-12-25”)+pd.日期偏移量(天=1)

时间戳('2019-12-01 00:00:00')

pd.时间戳(“2019-12-25”)+pd.日期偏移量(天=1)

时间戳('2019-12-26 00:00:00')

>>> # 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