熊猫:dt.dayofweek显示不正确的值

时间:2017-02-27 20:35:32

标签: python pandas datetime 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

所以说星期五是本周的第4天,这显然是错误的。

我做错了吗?我在这个问题上花了太长时间!

我可能会猜测这个函数没有正确实现,但是如果它无法计算任意日期时间索引的星期几,那么它会让我失败

1 个答案:

答案 0 :(得分:2)

详见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}

虽然我没有真正看到这样做的价值。