У меня есть DataFrame со столбцом min_latency, который представляет собой минимальную задержку, достигнутую предиктором. Если предиктор не удался, значения нет, и поэтому он возвращает min_latency=pd.NaT.
Кадр данных создается из словаря, и тогда и только тогда, когда все строки имеют значение pd.NaT, результирующий столбец будет иметь тип dtype datetime64[ns]. Кажется, невозможно преобразовать его в дельту времени.
df = pd.DataFrame([{'id': i, 'min_latency': pd.NaT} for i in range(10)])
print(df['min_latency'].dtype) # datetime64[ns]
df['min_latency'].astype('timedelta64[ns]') # TypeError: Cannot cast DatetimeArray to dtype timedelta64[ns]
Эта проблема не возникает, если там есть некоторая разница во времени:
df = pd.DataFrame([{'id': i, 'min_latency': pd.NaT} for i in range(10)] + [{'id': -1, 'min_latency': dt.timedelta(seconds=3)}])
print(df['min_latency'].dtype) # timedelta64[ns]
Подробнее здесь: https://stackoverflow.com/questions/793 ... t-datetime
DataFrame со всем NaT должен быть timedelta, а не datetime. ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как правильно вставить значения Pandas Nat DateTime в мою таблицу PostgreSQL
Anonymous » » в форуме Python - 0 Ответы
- 0 Просмотры
-
Последнее сообщение Anonymous
-