Python 将具有不同数据类型的列组合起来,在数据帧中形成一个dateTime列

Python 将具有不同数据类型的列组合起来,在数据帧中形成一个dateTime列,python,pandas,datetime,Python,Pandas,Datetime,我从数据类型类“object”中包含date,整数中包含hour的某些源导入了数据,看起来像: Date Hour Val 2019-01-01 1 0 2019-01-01 2 0 2019-01-01 3 0 2019-01-01 4 0 2019-01-01 5 0 2019-01-01 6 0 2019-01-01 7 0 2019-01-01 8 0 我需要一个列,该列的日期和时间如下所示: DATETIME

我从数据类型类“object”中包含date,整数中包含hour的某些源导入了数据,看起来像:

Date           Hour    Val
2019-01-01  1   0
2019-01-01  2   0
2019-01-01  3   0
2019-01-01  4   0
2019-01-01  5   0
2019-01-01  6   0
2019-01-01  7   0
2019-01-01  8   0
我需要一个列,该列的日期和时间如下所示:

DATETIME
2019-01-01 01:00:00
2019-01-01 02:00:00
2019-01-01 03:00:00
2019-01-01 04:00:00
2019-01-01 05:00:00
2019-01-01 06:00:00
2019-01-01 07:00:00
2019-01-01 08:00:00
我尝试使用以下命令将日期列转换为日期时间格式

pd.datetime(df.Date)
然后使用

df.Date.dt.hour = df.Hour
我得到了错误

ValueError:不支持修改datetimelike对象的属性。更改原始图形上的值

有没有简单的方法可以做到这一点?

使用和:

[外]


由于您要求使用一个组合列并使用单个
pd.to\u datetime
调用的方法,因此您可以执行以下操作:

df['Datetime'] = pd.to_datetime((df['Date'].astype(str) + ' ' +
                                 df['Hour'].astype(str)),
                                 format='%Y-%m-%d %I')

有没有办法通过修改我的原始数据来直接使用datetime?比如先组合日期和小时列,然后使用一个to_datetime?是的,我想你可以做
pd.to_datetime((df['date'].astype(str)+''+df['hour'].astype(str)),格式='%Y-%m-%d%I')
,但它不是很像Python
        Date  Hour  Val            Datetime
0 2019-01-01     1    0 2019-01-01 01:00:00
1 2019-01-01     2    0 2019-01-01 02:00:00
2 2019-01-01     3    0 2019-01-01 03:00:00
3 2019-01-01     4    0 2019-01-01 04:00:00
4 2019-01-01     5    0 2019-01-01 05:00:00
5 2019-01-01     6    0 2019-01-01 06:00:00
6 2019-01-01     7    0 2019-01-01 07:00:00
7 2019-01-01     8    0 2019-01-01 08:00:00
df['Datetime'] = pd.to_datetime((df['Date'].astype(str) + ' ' +
                                 df['Hour'].astype(str)),
                                 format='%Y-%m-%d %I')