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