将列串联为日期

时间:2018-07-22 18:25:26

标签: python pandas datetime

好的,我当前有一列日期的dtype是object。

输出如下:

720344    31/12/2016
720345    31/12/2016
720346    31/12/2016
720347    31/12/2016
720348    31/12/2016

然后我有一列时间,其dtype为timedelta64 [ns],其输出类似于

10       00:15:04
11       00:12:20
12       00:14:37
13       00:18:42

我已经阅读了几个线程,看来我需要以某种方式使用pd.to_datetime函数。

我尝试过:

pd.to_datetime(dfdate['INCIDENT_DATE'] + " " + dfdate['DispatchTime'])

但是我得到了错误:

TypeError: ufunc add cannot use operands with types dtype('<U11') and dtype('<m8[ns]')

我猜它不喜欢object + timedelta命令。

然后我尝试使用以下方法将时间转换为str:

pd.to_datetime(dfdate['INCIDENT_DATE'] + " " + str(dfdate['DispatchTime']))

但是现在我得到了另一个错误:

ValueError: Unknown string format

1 个答案:

答案 0 :(得分:2)

我认为有必要将to_datetime的列INCIDENT_DATE转换为datetime,然后添加DispatchTime列,因为timedelta s:

print (dfdate.dtypes)
INCIDENT_DATE             object
DispatchTime     timedelta64[ns]
dtype: object

dfdate['date'] = pd.to_datetime(dfdate['INCIDENT_DATE']) + dfdate['DispatchTime']
print (dfdate)
       INCIDENT_DATE DispatchTime                date
720344    31/12/2016     00:15:04 2016-12-31 00:15:04
720345    31/12/2016     00:12:20 2016-12-31 00:12:20
720346    31/12/2016     00:14:37 2016-12-31 00:14:37
720347    31/12/2016     00:18:42 2016-12-31 00:18:42