首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Pandas和.shift使用条件查询.shift文件

使用Pandas和.shift使用条件查询.shift文件
EN

Stack Overflow用户
提问于 2018-08-13 16:27:15
回答 1查看 247关注 0票数 1

我在查询带有条件的贸易数据的简单.csv文件时遇到了困难。.csv文件有5列[open, high, low, close, volume]和一个时间序列索引,一分钟一分钟地交换

我想要做的是构建一个脚本

(1)告诉我收盘价减去前一分钟的开盘价多少倍是正数。(2)前一分钟的音量大于前一分钟的音量。

到目前为止,我的上半部分(1)是:

代码语言:javascript
复制
ts2 = ts[(ts["close"]-ts["open"].shift(1))>0]

但是,我很难将它与我所要求的音量条件结合起来。我尝试了以下操作,结果导致语法和其他错误。

代码语言:javascript
复制
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)

最后,我会使用:

代码语言:javascript
复制
print(len(ts4)) 

若要查找条件查询的csv文件中出现的次数,请执行以下操作。

请告诉我如何将这两种条件结合起来,以及是否有办法改进我目前的方法。

谢谢大家的帮助,非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-13 23:23:06

你快到了。只需制作ts2ts3掩码,而不是实际查询的数据格式。

代码语言:javascript
复制
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

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51826748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档