Python';s pandas为DatetimeIndex提供了错误的工作日索引

Python';s pandas为DatetimeIndex提供了错误的工作日索引,python,pandas,time-series,Python,Pandas,Time Series,我想获取timeseries数据,并计算每个工作日(周一、周二,…)的平均行数。我的数据如下: timestamp maxCapacity Mon Aug 4 14:47:00 EDT 2014 6741 Mon Aug 4 14:48:01 EDT 2014 6741 为了实现这一点,我首先通过时间戳对数据帧进行索引。然后,通过从时间戳索引获取工作日来创建一个新列。但是,新列没有正确分配工作日编号 下面是产生问题的代码 import wget, pandas, c

我想获取timeseries数据,并计算每个工作日(周一、周二,…)的平均行数。我的数据如下:

timestamp       maxCapacity
Mon Aug  4 14:47:00 EDT 2014    6741
Mon Aug  4 14:48:01 EDT 2014    6741
为了实现这一点,我首先通过时间戳对数据帧进行索引。然后,通过从时间戳索引获取工作日来创建一个新列。但是,新列没有正确分配工作日编号

下面是产生问题的代码

import wget, pandas, csv
from dateutil import parser
url = 'https://www.dropbox.com/s/kbti3i8uzy82hw6/maxCapacity?dl=1'
dataFile = 'maxCapacitySample'
if not os.path.exists(dataFile):
    wget.download(url, out=dataFile)

parse = lambda x: parser.parse(x)

tdata = pandas.read_csv(dataFile,
                        parse_dates={"Datetime":['timestamp',]},
                        index_col='Datetime',
                        keep_date_col=False,
                        date_parser=parse,
                        dialect=csv.excel_tab)

tdata['weekday'] = tdata.index.weekday
print tdata.head()
输出

                       maxCapacity  weekday
Datetime
2014-08-04 14:40:00-04:00         6741        0
2014-08-04 14:47:00-04:00         6741        3
2014-08-04 14:48:01-04:00         6741        3
2014-08-04 14:49:00-04:00         6741        3
2014-08-04 14:50:00-04:00         6741        3

这里的问题是,同一天(第4天)被映射到工作日0和3。我做错了什么?

我可以通过以下方式找到解决办法:

tdata['weekday'] = pandas.to_datetime(tdata.index.values).weekday
生成的数据帧是:

                           maxCapacity  weekday
Datetime
2014-08-04 14:40:00-04:00         6741        0
2014-08-04 14:47:00-04:00         6741        0
2014-08-04 14:48:01-04:00         6741        0
2014-08-04 14:49:00-04:00         6741        0
2014-08-04 14:50:00-04:00         6741        0
2014-08-04 14:51:00-04:00         6741        0
2014-08-04 14:52:00-04:00         6741        0
2014-08-04 14:53:00-04:00         6741        0
2014-08-04 14:54:00-04:00         6741        0
2014-08-04 14:55:00-04:00         6741        0
...                                ...      ...
2014-08-20 09:37:00-04:00         6652        2
2014-08-20 09:38:00-04:00         6654        2
2014-08-20 09:39:00-04:00         6651        2
2014-08-20 09:40:00-04:00         6642        2
2014-08-20 09:41:00-04:00         6648        2
2014-08-20 09:42:00-04:00         6654        2
2014-08-20 09:43:00-04:00         6646        2
2014-08-20 09:44:00-04:00         6659        2
2014-08-20 09:45:00-04:00         6650        2
2014-08-20 09:46:00-04:00         6655        2

[6589 rows x 2 columns]

什么版本?在0.14.1/py2.7/Windows上似乎工作正常。你能不能给我看看
tdata.info()
@chrisb我能在pandas 0.14.1/py2.7/Linux上重现OP的问题;它有各种各样奇怪的东西does@chrisb0.12.0/py2.7.5/os x mavericks
@Jeff dateutil解析器就是问题所在。我升级到了0.14.1,但没用。删除dateutil代码修复了0.14.1上的问题。