我对python和pandas
比较陌生。
我有一个DataFrame
和一些股票相关的过去几天的“低”价格。我试着迭代每只股票(现在我只有3只,但最终会有数千只),然后对于每只股票,我想看看今天的“低价”是否大于昨天的低价,我想看看昨天的低价是否低于2天前的最低价。对于每一只符合这个条件的股票,我最终想把它们导出到一个csv文件中。在
list = ['IBM', 'AMZN', 'FB']
stockData = DataReader(list, 'yahoo', datetime(2016,06,8), datetime.today().utcnow())
low = stockData['Low']
low0 = low.iloc[-1]
low1 = low.iloc[-2]
low2 = low.iloc[-3]
变量low0、low1和low2可能不是必需的,但我喜欢它们如何拼接出我想要的特定数据。在
然后,我试着用我的函数遍历我的列表中的每只股票:
^{pr2}$这是我得到的错误: 值错误:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()。在
如果有任何意见,我将不胜感激。在
要确定
Low
在过去三天中是否一直在增加,可以使用以下命令:比较相邻天之间的
^{pr2}$Low
,并返回True
如果Low
在这两种情况下都在增加:或者检查最近三个
Low
价格之间的差额是否为负数(因为最近的一天现在是第一天):因此,对于您的申请:
这是一个类似但略有不同的方法来解决这个问题的一个例子。我用虚拟值来演示。在
首先,我创建一个数据帧。在
我使用
^{pr2}$.shift()
来跟踪与数据帧中的第一天和第二天相比,第二天和第三天的值上升或下降的程度。我通过从df
中减去df.shift(1)
来实现这一点。第一天的值将被NaN
替换。在如果您喜欢
True
或False
,可以检查这些值是否高于或低于0
。因此,在这个例子中,True
表示向上,False
表示向下,第一天,即起始值,将被False
替换。在相关问题 更多 >
编程相关推荐