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

时间:2018-03-21 16:36:39

标签: python pandas datetime

我有以下df:

date                             time
2018-01-01 00:00:00             7:30:33
2017-01-01 00:00:00             7:30:33

我想创建一个如下所示的datetime列:

2018-01-01 7:30:33        
2017-01-01 7:30:33  

为此,我使用以下代码:

    df["datetime"] = pd.to_datetime(df['date'].apply(str)+' '+df['time'])

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

ValueError: hour must be in 0..23

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

1 个答案:

答案 0 :(得分:2)

date转换为datetime,将time转换为timedelta,然后将其加起来。

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]

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