我有以下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
我做错了什么,如何解决这个问题?
答案 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'
参数添加到两个函数中以便适当地处理它们。