У меня есть объект Pandas DatetimeIndex
(полученный из индекса кадра данных), и мне нужен день недели каждого элемента. Я запускаю это с Python 3.6.5
(64-бит) в Windows и с Pandas 0.22.0
и Int64Index
объект Int64Index
:
например
In:
ts = pd.DatetimeIndex([['2013-01-01 00:00:00', '2013-01-01 00:30:00',
'2013-01-02 01:00:00', '2013-01-02 01:30:00',
'2013-01-03 02:00:00', '2013-01-03 02:30:00',
'2013-01-04 03:00:00', '2013-01-04 03:30:00',
'2013-01-05 04:00:00', '2013-01-05 04:30:00']])
ts.weekday
Out:
Int64Index([1, 1, 2, 2, 3, 3, 4, 4, 5, 5], dtype='int64')
Теперь я запускаю скрипт на pythonanywhere
которого есть Python 3.6.0
и Pandas 0.19.2
и результат возвращается как массив:
In:
ts = pd.DatetimeIndex(['2013-01-01 00:00:00', '2013-01-01 00:30:00',
'2013-01-02 01:00:00', '2013-01-02 01:30:00',
'2013-01-03 02:00:00', '2013-01-03 02:30:00',
'2013-01-04 03:00:00', '2013-01-04 03:30:00',
'2013-01-05 04:00:00', '2013-01-05 04:30:00'])
ts.weekday
Out:
array([1, 1, 2, 2, 3, 3, 4, 4, 5, 5], dtype=int32)
Можно ли написать этот код, чтобы вернуть тот же результат (в идеале объект Index
) на обе платформы?
Это поведение было изменено в недавнем обновлении, чтобы вернуть pd.Index
вместо массива. Для обратной совместимости вы всегда можете Int64Index
результат Int64Index
мере необходимости.
>>> pd.Index(ts.weekday, dtype=np.int64)
Int64Index([1, 1, 2, 2, 3, 3, 4, 4, 5, 5], dtype='int64')