Это мой фрейм данных
df = pd.DataFrame({
'Time': ['10:00PM', '15:45:00', '13:40:00AM','5:00']
})
Time
0 10:00PM
1 15:45:00
2 13:40:00AM
3 5:00
Мне нужно преобразовать формат времени в определенный формат, который является моим ожидаемым результатом, указанным ниже.
Time
0 22:00:00
1 15:45:00
2 01:40:00
3 05:00:00
Я попытался использовать функцию split и endwith для str, что является сложным решением. Есть ли лучший способ добиться этого?
Заранее спасибо!
Ну вот. Следует отметить одну вещь, хотя 13:40:00 приведет к ошибке, поскольку 13 - это а) неправильный формат, поскольку AM/PM идут только от 1 до 12 и б) PM (которое будет 13) не может одновременно быть AM : )
Ваше здоровье
import pandas as pd
df = pd.DataFrame({'Time': ['10:00PM', '15:45:00', '01:40:00AM', '5:00']})
df['Time'] = pd.to_datetime(df['Time'])
print(df['Time'].dt.time)
<<< 22:00:00
<<< 15:45:00
<<< 01:45:00
<<< 05:00:00