将数据框中的对象(时间)类型列转换为日期时间

时间:2019-08-16 07:45:46

标签: python python-3.x pandas python-3.6

我正在努力将对象类型转换为日期时间。 这是数据框中的一列,其时间值格式为hh:mm:ss。

数据帧:df_train 栏:时间 值格式:hh:mm:ss

下面是我已经没有运气尝试过的选项

Opt1:

df_train['time'] = pd.to_datetime(df_train['time'])
Error:
TypeError: <class 'datetime.time'> is not convertible to datetime

Opt2:

df_train['time'] = pd.to_datetime(df_train['time'], format='%H:%M:%S').dt.time
Outcome:
The code is working but the type remain as object.

Opt3:

df_train['time'] = pd.to_datetime(df_train['time'].str.strip(), format='%H:%M:%S')
Outcome:
value changed to NaT

Opt4:

df_train['time'] = pd.to_datetime(df_train['time']).dt.time
Error:
TypeError: <class 'datetime.time'> is not convertible to datetime

感谢您建议将此列转换为datetime类型。

2 个答案:

答案 0 :(得分:0)

只需尝试:

dat['column']  = pd.to_datetime(dat['column'])

或 从文件读取数据时pd.read_csv(file, parse_dates=['column'])

答案 1 :(得分:0)

我想很近,您需要to_timedelta来获取将Python对象时间转换为字符串的时间增量:

df_train['time'] = pd.to_timedelta(df_train['time'].astype(str))