Панды: dt.dayofweek показывает неправильные значения

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

Некоторые простые данные:

import pandas as pd

# Simple time series data:
series = pd.Series({"2017-02-20": 1, '2017-02-21':2, '2017-02-22':3, '2017-02-23': 4, '2017-02-24':5})
datetime = pd.to_datetime(series.index)

# turn series in to dataframe:
df = pd.DataFrame(series.values, index=datetime)

Теперь, если мы позвоним argmax() и спросите, какой это день недели мы получаем:

df[0].argmax().dayofweek

# 4

Так что говорят, что пятница - это четвертый день недели, что явно неверно по любым меркам.

Я делаю что-то неправильно? Я потратил слишком много времени на эту проблему!

Я могу рискнуть предположить, что эта функция не реализована должным образом, но она как бы побеждает объект для меня, если она не может вычислить день недели для любого произвольного индекса datetime

1 ответ

Решение

Как подробно описано в документах для DateTimeIndex.dayofweek,

День недели с понедельником =0, воскресеньем =6

Так что да, пятница будет помечена как 4. Если вам не нравится это конкретное сопоставление чисел с днями недели, вы всегда можете сопоставить это сопоставление с тем, что вы предпочитаете, например, если вы хотите воскресенье-> суббота как 1->7,

>>> custom_map = dict(zip(range(7), [2, 3, 4, 5, 6, 7, 1]))

>>> custom_map
{0: 2, 1: 3, 2: 4, 3: 5, 4: 6, 5: 7, 6: 1}

хотя я не вижу в этом смысла.

Другие вопросы по тегам