Должен ли Pandas DatetimeIndex.weekday возвращать индекс или пустой массив?

1

У меня есть объект 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) на обе платформы?

Теги:
pandas
datetimeindex

1 ответ

2
Лучший ответ

Это поведение было изменено в недавнем обновлении, чтобы вернуть pd.Index вместо массива. Для обратной совместимости вы всегда можете Int64Index результат Int64Index мере необходимости.

>>> pd.Index(ts.weekday, dtype=np.int64)
Int64Index([1, 1, 2, 2, 3, 3, 4, 4, 5, 5], dtype='int64')

Ещё вопросы

Сообщество Overcoder
Наверх
Меню