Q:

combine columns with different data types to make a single dateTime column in pandas data frames

I have imported data from some source that has date in datatype class 'object' and hour in integer and looks something like:
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

I need a single column that has the date-time in a column that looks like this:
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

I tried to convert the date column to dateTime format using 
pd.datetime(df.Date)

and then using 
df.Date.dt.hour = df.Hour

I get the error 

ValueError: modifications to a property of a datetimelike object are not supported. Change values on the original.

Is there an easy way to do this?

A:

Use pandas.to_timedelta and pandas.to_datetime:
# if needed
df['Date'] = pd.to_datetime(df['Date'])

df['Datetime'] = df['Date'] + pd.to_timedelta(df['Hour'], unit='H')

[out]
        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

Since you asked for a method combining the columns and using a single pd.to_datetime call, you could do:
df['Datetime'] = pd.to_datetime((df['Date'].astype(str) + ' ' +
                                 df['Hour'].astype(str)),
                                 format='%Y-%m-%d %I')

