我有一个两列的数据框,其中包含起飞和到达时间(请参见下面的示例)。 为了在那些时间进行操作,我想将字符串转换为日期时间格式,仅保留小时/分钟/秒的信息。
输入数据示例-文件名=表
departure_time,arrival_time
07:00:00,07:30:00
07:00:00,07:15:00
07:05:00,07:22:00
07:10:00,07:45:00
07:15:00,07:50:00
07:10:00,07:26:00
07:40:00,08:10:00
我运行了以下代码以导入表文件,然后将类型转换为日期时间格式:
import pandas as pd
from datetime import datetime
df= pd.read_excel("table.xlsx")
df['arrival_time']= pd.to_datetime(df['arrival_time'], format= '%H:%M:%S')
但出现此错误:
ValueError: time data ' 07:30:00' does not match format '%H:%M:%S' (match)
我犯了什么错误?
答案 0 :(得分:3)
好像是一个导入问题' 07:30:00'
,前面有一个空格。如果您要导入的是CSV文件,则可以使用skipinitialspace=True
。
如果我导入您的CSV文件并使用您的代码,则效果很好:
CSV:
departure_time,arrival_time
07:00:00,07:30:00
07:00:00,07:15:00
07:05:00,07:22:00
07:10:00,07:45:00
07:15:00,07:50:00
07:10:00,07:26:00
07:40:00,08:10:00
df = pd.read_csv('test.csv', skipinitialspace=True)
df['arrival_time']= pd.to_datetime(df['arrival_time'], format='%H:%M:%S').dt.time
print(df)
departure_time arrival_time
0 07:00:00 07:30:00
1 07:00:00 07:15:00
2 07:05:00 07:22:00
3 07:10:00 07:45:00
4 07:15:00 07:50:00
5 07:10:00 07:26:00
6 07:40:00 08:10:00