Массив Numpy datetime64[D] для серии/столбца полярных датPython

Программы на Python
Anonymous
Массив Numpy datetime64[D] для серии/столбца полярных дат

Сообщение Anonymous »

Обновление: pl.Series(datetime_array) теперь создает тип даты, как и ожидалось.

Массив даты и времени Numpy, похоже, преобразуется в серию объектов в Polars, но числовые или строковые массивы сохраняют правильный формат при преобразовании в pl.Series. Я неправильно его использую или это может быть ошибка и т. д.?
В:
datetime_array = np.array(['2022-02-11', '2022-02-11', '2022-02-11','2022-02-10','2022-02-11', '2022-02-11'], dtype='datetime64[D]')

Выход:
array(['2022-02-11', '2022-02-11', '2022-02-11', '2022-02-10',
'2022-02-11', '2022-02-11'], dtype='datetime64[D]')

Преобразование в серию:
В:
pl.Series(datetime_array)

Выход:
shape: (6,)
Series: '' [o][object]
[
2022-02-11
2022-02-11
2022-02-11
2022-02-10
2022-02-11
2022-02-11
]

Если я пытаюсь определить dtype в серии как pl.Date, это вызывает исключение, как показано ниже.
В:
pl.Series(datetime_array, dtype=pl.Date)

Выход:
InvalidOperationError: cannot cast array of type ObjectChunked to arrow datatype

Я нашел решение этой проблемы: преобразовать массив datetime numpy в строковый тип в numpy и только затем преобразовать в серию Polars. Затем используйте .str.strptime() в Polars для преобразования обратно в тип даты.
В:
pl.Series(np.datetime_as_string(datetime_array)).str.to_date()

Выход:
shape: (6,)
Series: '' [date]
[
2022-02-11
2022-02-11
2022-02-11
2022-02-10
2022-02-11
2022-02-11
]


Подробнее здесь: https://stackoverflow.com/questions/747 ... ies-column

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