2017-02-27 172 views
2

我奋力理解为什么星期被解释周五的每周4天熊猫:dt.dayofweek显示不正确的值

一些简单的数据:

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天。

我做错了什么?我在这个问题上花费了太多时间!

我可以大胆地猜测,这个功能不能正常执行,但它有点违背了对象对我来说,如果它不能计算一周的某一天为任意日期时间指数

回答

2

在文档中所详述为DateTimeIndex.dayofweek

一周的周一= 0,星期日= 6

所以,是的,周五将被标记为4,如果你不喜欢的数字来这个特殊的映射一周中的几天,你c应该总是将这个映射映射到你喜欢的任何地方,例如如果你想星期日>周六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} 

虽然我实在不明白这样做的价值。