У меня есть фрейм данных в Пандах, в котором есть даты и некоторые другие данные. Даты явно имеют тип datetime.date
. Для примера я заставляю это вручную. В реальной проблеме кадр импортируется из внешнего источника, уже настроенного таким образом. После манипулирования индексированием я обнаружил, что мои даты относятся к классу pandas._libs.tslib.Timestamp
, что приводит к несовместимости с более поздним кодом. Что вызывает это изменение в типе / классе?
Минимальный рабочий пример (обратите внимание на различия между строками 3 и 7):
In [1]: df = pd.DataFrame({'date' : ['02/20/2015','01/15/2016','08/21/2015'], 'i' : ['Bob', 'Bob', 'Jim'] ,'v' : [1, 2, 3]})
In [2]: df['date'] = pd.to_datetime(df.date).dt.date
In [3]: print type(df.date[0])
<type 'datetime.date'>
In [4]: df.set_index(['i','date'], inplace=True)
In [5]: print type(df.loc['Bob',:].index[0])
<class 'pandas._libs.tslib.Timestamp'>
In [6]: df.reset_index(inplace=True)
In [7]: print type(df.date[0])
<class 'pandas._libs.tslib.Timestamp'>