Проблема с преобразованием строк продолжительности времени ⇐ Python

Программы на Python
Anonymous
Проблема с преобразованием строк продолжительности времени

Сообщение Anonymous »

У меня есть некоторые данные типа продолжительности (время прохождения круга) в виде pl.String, которые не удается преобразовать с помощью strptime, тогда как обычные даты и время работают должным образом.
Минуты (перед :) и секунды (перед .) всегда дополняются двумя цифрами, миллисекунды всегда состоят из 3 цифр.
Lap время всегда < 2 минут.

Код: Выделить всё

df = pl.DataFrame({
"lap_time": ["01:14.007", "00:53.040", "01:00.123"]
})

df = df.with_columns(
# pl.col('release_date').str.to_date("%B %d, %Y"), # works
pl.col('lap_time').str.to_time("%M:%S.%3f").cast(pl.Duration), # fails
)
Поэтому я использовал определения спецификаторов формата хронографа из https://docs.rs/chrono/latest/chrono/fo ... index.html, которые используются согласно полярные документы strptime
второе преобразование (для lap_time) всегда завершается неудачей, независимо от того, использую ли я .%f , .%3f, %.3f. По-видимому, strptime не позволяет создавать pl.Duration напрямую, поэтому я попробовал с pl.Time, но это не удалось с ошибкой:

Код: Выделить всё

ComputeError: strict conversion to dates failed, maybe set strict=False
но установка strict=False дает все нулевые значения для всей серии.
Я что-то упустил или это какое-то странное поведение в части Chrono или Python-polar?

Подробнее здесь: https://stackoverflow.com/questions/756 ... me-strings

Вернуться в «Python»