У меня есть следующие данныеFrame:
Timestamp real time
0 17FEB20:23:59:50 0.003
1 17FEB20:23:59:55 0.003
2 17FEB20:23:59:57 0.012
3 17FEB20:23:59:57 02:54.8
4 17FEB20:24:00:00 0.03
5 18FEB20:00:00:00 0
6 18FEB20:00:00:02 54.211
7 18FEB20:00:00:02 0.051
Как преобразовать столбцы в datetime64
?
Есть две вещи, которые делают эту сложную форму меня:
- Столбец
Timestamp
, индекс 4
имеет значение: 17FEB20:24:00:00
, которое, по-видимому, не является действительной датой-временем (хотя оно было выведено программой SAS ...). - Столбец
real time
не следует шаблону и, кажется, его нельзя сопоставить с помощью date_parser
.
Это то, что я пытался обратиться к первому столбцу (Timestamp
):
data['Timestamp'] = pd.to_datetime(
data['Timestamp'],
format='%d%b%y:%H:%M:%S')
Но из-за значения индекса 4 (17FEB20:24:00:00
) я получаю: ValueError: time data '17FEB20:24:00:00' does not match format '%d%b%y:%H:%M:%S' (match)
. Если я удаляю эту строку, она работает, но мне нужно найти способ ее решения, так как в моем наборе данных тысячи строк, и я не могу их просто игнорировать. Возможно, есть способ преобразовать его в ноль часов следующего дня?
Вот фрагмент кода для создания образца dataFrame, как описано выше, чтобы получить некоторое время, работая над ответом (если вам нужно):
data = pd.DataFrame({
'Timestamp':[
'17FEB20:23:59:50',
'17FEB20:23:59:55',
'17FEB20:23:59:57',
'17FEB20:23:59:57',
'17FEB20:24:00:00',
'18FEB20:00:00:00',
'18FEB20:00:00:02',
'18FEB20:00:00:02'],
'real time': [
'0.003',
'0.003',
'0.012',
'02:54.8',
'0.03',
'0',
'54.211',
'0.051',
]})
Ценю вашу помощь!