我在查询带有条件的贸易数据的简单.csv文件时遇到了困难。.csv文件有5列[open, high, low, close, volume]和一个时间序列索引,一分钟一分钟地交换。
我想要做的是构建一个脚本
(1)告诉我收盘价减去前一分钟的开盘价多少倍是正数。(2)前一分钟的音量大于前一分钟的音量。
到目前为止,我的上半部分(1)是:
ts2 = ts[(ts["close"]-ts["open"].shift(1))>0]但是,我很难将它与我所要求的音量条件结合起来。我尝试了以下操作,结果导致语法和其他错误。
ts2 = ts[(ts["close"]-ts["open"].shift(1))>0]
ts3 = ts[(ts["volume"].shift(1)-ts["volume"].shift(2))>0]
ts4 = ts[ts2 & ts3]
ts4 = ts[(ts["close"]-ts["open"].shift(1)>0) & (ts["volume"].shift(1)-ts["volume"].shift(2)>0)最后,我会使用:
print(len(ts4)) 若要查找条件查询的csv文件中出现的次数,请执行以下操作。
请告诉我如何将这两种条件结合起来,以及是否有办法改进我目前的方法。
谢谢大家的帮助,非常感谢!
发布于 2018-08-13 23:23:06
你快到了。只需制作ts2和ts3掩码,而不是实际查询的数据格式。
ts2 = (ts["close"] - ts["open"].shift(1)) > 0 #this is a mask
ts3 = (ts["volume"].shift(1) - ts["volume"].shift(2)) > 0 #this is a mask
ts4 = ts.loc[ts2 & ts3] #query using 2 masks希望这能有所帮助。
https://stackoverflow.com/questions/51826748
复制相似问题