我已经使用Python和Pandas进行了一段时间的工作,分析一组小时级别的数据,并且觉得这很好(来自Matlab)。
现在我有点卡住了。我是这样创建我的DataFrame
的:
SamplingRateMinutes=60
index = DateRange(initialTime,finalTime, offset=datetools.Minute(SamplingRateMinutes))
ts=DataFrame(data, index=index)
我现在想要做的是选择每天10到13点和20-23点的数据,以便进行进一步的计算。 到目前为止,我使用以下方式切分数据:
selectedData=ts[begin:end]
我相信我会得到一些脏的循环来选择所需的数据。但肯定有一种更优雅的方式来精确索引我想要的内容。我相信这是一个常见的问题,伪代码的解决方案应该看起来像这样:
myIndex=ts.index[10<=ts.index.hour<=13 or 20<=ts.index.hour<=23]
selectedData=ts[myIndex]
我想提一下,我是一名工程师而不是程序员 :) ... 目前为止
dr = pd.date_range(dt(2009,1,1),dt(2010,12,31),freq='H'); dt = pd.DataFrame(rand(len(dr),2),dr); hour = dt.index.hour; selector = ((10 <= hour) & (hour <= 13)) | ((20<=hour) & (hour<=23)) data = dt[selector]
- K.-Michael Aye