Python 使用datetime.timedelta添加小时数(小时=1)

Python 使用datetime.timedelta添加小时数(小时=1),python,pandas,datetime,timedelta,Python,Pandas,Datetime,Timedelta,我在一篇相关文章中看到,您无法添加。timedelta少于24小时,但我需要在我的时间中添加一小时,我的代码如下: Hour =df['Hour'].values[0] 16:42:00 The column Hour is a datetime.time 我想加上一个小时,就像这样: from datetime import date HourPlus=datetime.datetime.combine(date.today() +datetime.timedelta(hours=1),Ho

我在一篇相关文章中看到,您无法添加。timedelta少于24小时,但我需要在我的时间中添加一小时,我的代码如下:

Hour =df['Hour'].values[0]
16:42:00
The column Hour is a datetime.time
我想加上一个小时,就像这样:

from datetime import date
HourPlus=datetime.datetime.combine(date.today() +datetime.timedelta(hours=1),Hour)

a = datetime.datetime.combine(date.today(),Hour)
b = a + datetime.timedelta(hours=1)
但只有当我加上天数=1而不是小时时,才有效,我如何解决这个问题

from datetime import date
HourPlus=datetime.datetime.combine(date.today() +datetime.timedelta(days=1),Hour)
2021-04-14 16:42:00
使用datetime.now而不是date.today保留时间组件

import datetime as dt

nw = dt.datetime.now()
print(nw)
print(nw + dt.timedelta(hours=1))

熊猫时代三角洲工程

输出
我解决了这个问题,出于某种原因datetime.timedeltahours=1必须是这样的:

from datetime import date
HourPlus=datetime.datetime.combine(date.today() +datetime.timedelta(hours=1),Hour)

a = datetime.datetime.combine(date.today(),Hour)
b = a + datetime.timedelta(hours=1)
而不是像这样

b=datetime.datetime.combine(date.today() +datetime.timedelta(hours=1),Hour)

问题的核心是

date.today+datetime.timedeltahours=1

无法添加小时,因为datetime.date是日期而不是datetime。因此,在日期上增加一小时不会改变日期

您需要有一个datetime.datetime对象才能有意义地添加一小时

>>> import datetime 
>>> x = datetime.date.today()
>>> x
datetime.date(2021, 4, 13)
>>> x + datetime.timedelta(hours=1)
datetime.date(2021, 4, 13)
>>> y = datetime.datetime.today()
>>> y
datetime.datetime(2021, 4, 13, 14, 32, 41, 989496)
>>> y + datetime.timedelta(hours=1)
datetime.datetime(2021, 4, 13, 15, 32, 41, 989496)
>>> 

我不想更改数据帧…HourPlus=df['Hour']+pd.Timedelta1 hours?列Hour是datetime.time,因此我无法添加pandas.timedeltaedid,抱歉@MrFuppesI在问题解决后添加了一个答案,谢谢。无论如何,我不想更改数据帧,只需将值[0]存储在一个变量中,并在其中添加1小时。好的-给定pandas标记,我认为您希望应用于所有值。df[hour].values[0]+pd.Timedeltahours=1将执行您希望执行的操作,如我所说,这不起作用,只有在我更改天的小时数时才起作用