合并日期和时间;ValueError:小时必须在 0..23 内

fre*_*888 4 python datetime pandas

我有以下 df:

date                             time
2018-01-01 00:00:00             7:30:33
2017-01-01 00:00:00             7:30:33
Run Code Online (Sandbox Code Playgroud)

我想创建一个日期时间列,应如下所示:

2018-01-01 7:30:33        
2017-01-01 7:30:33  
Run Code Online (Sandbox Code Playgroud)

为此,我使用以下代码:

    df["datetime"] = pd.to_datetime(df['date'].apply(str)+' '+df['time'])
Run Code Online (Sandbox Code Playgroud)

它在大多数时间都有效。但是,在我的 df 的某些部分(我不知道是哪些部分),我收到以下错误:

ValueError: hour must be in 0..23
Run Code Online (Sandbox Code Playgroud)

我做错了什么以及如何解决这个问题?

cs9*_*s95 5

转换datedatetime、 和timetimedelta然后将它们相加。

pd.to_datetime(df.date) + pd.to_timedelta(df.time)

0   2018-01-01 07:30:33
1   2017-01-01 07:30:33
dtype: datetime64[ns]
Run Code Online (Sandbox Code Playgroud)

如果您担心无效值,请将errors='coerce'参数添加到两个函数以适当处理它们。