Объекту cftime.DatetimeNoLeap не удается выполнить преобразование с помощью pandas.to_datetime () - PullRequest
0 голосов
/ 31 января 2019

Я использую xarray для чтения данных нескольких климатических моделей, и после обновления python мой код перестал работать.

Он падает, потому что некоторые данные модели имеют другой календарь:

In [15]: ds.coords['time'].values[0]
Out[15]: cftime.DatetimeNoLeap(1861, 1, 16, 12, 0, 0, 0, 0, 16)

, что означает сбой pandas.to_datetime ():

pd.to_datetime(ds.coords['time'].values[0])
TypeError: <type 'cftime._cftime.DatetimeNoLeap'> is not convertible to datetime

Есть ли способ обойти это?

1 Ответ

0 голосов
/ 01 февраля 2019

В xaray были внесены последние изменения для лучшей поддержки нестандартных календарей.В документации xarray есть полный раздел, описывающий эти изменения и способы восстановления предыдущего поведения ( ссылка на документы ).

Я думаю, что в вашем случае, если вы хотите преобразовать значения временик стандартным полным датам Pandas вы можете просто использовать метод to_datetimeindex():

ds.indexes['time'].to_datetimeindex()
...