CharlesAntoine
CharlesAntoine

Reputation: 83

Python - Pandas, issue with datetime format

I have a two-columns data frame, with departure and arrival times (see example below). In order to make operations on those times, i want to convert the string into datetime format, keeping only hour/minutes/seconds information.

Example of input data - file name = table

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

I ran this code to import the table file and then to convert the type in to datetime format:

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')

but get this error:

ValueError: time data ' 07:30:00' does not match format '%H:%M:%S' (match)

What mistake i am making?

Upvotes: 0

Views: 220

Answers (1)

NYC Coder
NYC Coder

Reputation: 7594

Seems like an import issue ' 07:30:00', there's a space in front. If it's a CSV you're importing you can use skipinitialspace=True.

If I import your CSV file, and use your code, it works fine:

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

Upvotes: 3

Related Questions