我正在尝试将时间戳列转换为以下格式:
预期输出:2019-05-20 13:25:00
以下是我的数据框的显示方式:
item, date
item_1, 2019-05-19 22:47:51.722615
item_2, 22/05/19 9:43
我尝试执行以下操作:
pd.to_datetime(df['date'], format='%Y-%m-%d %H:%M:%S').dt.strftime(
'%Y-%m-%d %H:%M:%S')
我不断收到错误消息ValueError: time data 22/05/19 9:43 doesn't match format specified
答案 0 :(得分:2)
如果可能,请删除参数format
:
df['date1'] = pd.to_datetime(df['date']).dt.strftime('%Y-%m-%d %H:%M:%S')
如果需要指定所有格式,请为errors='coerce'
的参数NaN
添加不匹配的值,因此将Series.round
用作最终日期时间:
d1 = pd.to_datetime(df['date'], format='%Y-%m-%d %H:%M:%S', errors='coerce')
d2 = pd.to_datetime(df['date'], format='%d/%m/%y %H:%M', errors='coerce')
df['date2'] = d1.combine_first(d2).dt.strftime('%Y-%m-%d %H:%M:%S')
print (df)
item date date1 \
0 item_1 2019-05-19 22:47:51.722615 2019-05-19 22:47:51
1 item_2 22/05/19 9:43 2019-05-22 09:43:00
date2
0 2019-05-19 22:47:51
1 2019-05-22 09:43:00