Python Pandas выходит за границы ошибки даты и времени для длинного кадра данных - PullRequest
0 голосов
/ 17 октября 2018

У меня есть фрейм данных df с формой (500000,70) и несколькими столбцами, включая недопустимые даты, например 4000-01-01 00:00:00.В уменьшенной версии этого фрейма данных я попытался

df["date"] = df["date"].astype(str)
df["date"] = df["date"].replace('4000-01-01 00:00:00', pd.NaT)

, который работал нормально.Также работала версия

df["date"] = pd.to_datetime(df["date"].replace("4000-01-01 00:00:00",pd.NaT))

.Для длинной версии фрейма данных я получаю следующую ошибку

OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 4000-01-01 00:00:00

Любые предложения, как решить эту проблему элегантным способом или в чем проблема?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Ошибка из-за:

In [332]: pd.Timestamp.max
Out[332]: Timestamp('2262-04-11 23:47:16.854775807')

Верхний предел даты следующий.И ваше значение находится за пределами диапазона, следовательно, OutOfBoundsError.

0 голосов
/ 17 октября 2018

Если добавить параметр errors='coerce' к функции to_datetime, он вернет NaT для всех не разбираемых дат:

df["date"] = pd.to_datetime(df["date"], errors='coerce')
...