Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅基于工作日(上午8点到晚上10点)和工作日使用Python查询数据_Python_Arrays_Datetime_Numpy_Pandas - Fatal编程技术网

仅基于工作日(上午8点到晚上10点)和工作日使用Python查询数据

仅基于工作日(上午8点到晚上10点)和工作日使用Python查询数据,python,arrays,datetime,numpy,pandas,Python,Arrays,Datetime,Numpy,Pandas,我的问题是一个非常开放的问题,我正在寻找一些关于如何使用以下格式操作数组的建议: list: [datetime.datetime(2016, 5, 17, 11, 32, 25), datetime.datetime(2016, 5, 17, 11, 33, 25), datetime.datetime(2016, 5, 17, 11, 34, 25), ... 我希望操纵数组,以便只考虑(1)个工作日,然后(2)只考虑上午8点到晚上10点之间的时间。我是用numpy还是熊猫能做到这一点?是

我的问题是一个非常开放的问题,我正在寻找一些关于如何使用以下格式操作数组的建议:

list:
[datetime.datetime(2016, 5, 17, 11, 32, 25),
datetime.datetime(2016, 5, 17, 11, 33, 25),
datetime.datetime(2016, 5, 17, 11, 34, 25), ...
我希望操纵数组,以便只考虑(1)个工作日,然后(2)只考虑上午8点到晚上10点之间的时间。我是用numpy还是熊猫能做到这一点?是否可以使用列表的格式,即datetime.datetime,或者将其转换为其他格式

我试着把纪元分开,这样日期和时间就分开了。执行此操作时,请执行以下命令:

myArray.ix[pd.to_datetime(myArray['Epoch']).isin(pd.bdate_range(start='2016-05-16', end='2016-06-15')
历元格式是日期和时间,所以我将其拆分,使myArray由现在的“日期”、“历元”、“值”作为三个独立的列组成。为了更好地理解这个命令(到目前为止还不起作用)以及如何使用它,我使用了以下调试行:

t = pd.bdate_range(start='2016-05-16', end='2016-06-15')
u = myArray['Date']
v = u.isin(t)
问题是从我所看到的,格式为yyyy-mm-yy的myArray['Date']中的日期与格式为yyyy-mm-dd的日期不匹配。

仅可用于选择工作日(1):

和选择时间之间的。。。(2) :

保留原始索引:

In [99]: d.set_index('Date').between_time('11:30','11:34').reset_index()
Out[99]:
                 Date       val
0 2016-05-17 11:32:25  0.235264
1 2016-05-17 11:33:25  0.755800
示例数据帧:

In [98]: d
Out[98]:
                 Date       val
0 2016-05-17 11:32:25  0.235264
1 2016-05-17 11:33:25  0.755800
2 2016-05-17 11:34:25  0.849591
3 2016-05-20 12:00:25  0.955704
4 2016-05-21 13:13:13  0.301753

谢谢你!我在路上,但我还没完全明白。我将代码重写为以下内容:modified_array.ix[pd.to_datetime(modified_array['Epoch']).isin(pd.bdate_range(start='2016-05-17',end='2016-05-22'))]省略“d.Date.dt.Date”是因为它最初不起作用。我怀疑这可能会导致我没有收到这行代码的错误消息,但数据帧(在本例中为“modified_array”)没有更改。顺便说一下,为了调试和检查输出,我尝试使用np.save将数组保存到一个文件中,但这产生了一个我无法读取的文件。
In [99]: d.set_index('Date').between_time('11:30','11:34').reset_index()
Out[99]:
                 Date       val
0 2016-05-17 11:32:25  0.235264
1 2016-05-17 11:33:25  0.755800
In [98]: d
Out[98]:
                 Date       val
0 2016-05-17 11:32:25  0.235264
1 2016-05-17 11:33:25  0.755800
2 2016-05-17 11:34:25  0.849591
3 2016-05-20 12:00:25  0.955704
4 2016-05-21 13:13:13  0.301753