将数据框的最后一行与它上面的一行和它上面的另一行进行比较



我有一个数据框架,其中在同一列上存在许多行数据。我需要将最后一行(最新一行)与上面一行(最后一行第二行)进行比较,然后再将上面一行(最后一行第三行)进行比较

代码如下:

dataframe.loc[
(
# Scontents : data value is above 70
(qtpylib.crossed_above(dataframe['avg'], self.sell_avg.value)) &
(dataframe['tema'] > dataframe['bb_middleband']) &  # Guard: tema above BB middle
#Compare here :
(dataframe['tema'] < dataframe['tema'].shift(1))
),
'execute02'] = 1
return dataframe

这段代码可以比较最后一行和上面一行。

i tried:

(dataframe['tema'] < dataframe['tema'].shift(1) < dataframe['tema'].shift(1))

但是它给了我shell的值错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

我对熊猫一窍不通…我该怎么做才能比较3个实例?我试着阅读熊猫文档,但它只告诉index =1,但我不知道如何告诉它从最后一行读取3行。

谢谢。

克丽丝

您可以使用iloc,索引的负值从最后一行开始计数。

例如,iloc[-1]给出最后一列,-2给出它上面的一列,以此类推。

代码变成:

((dataframe['tema'].iloc[-1] < dataframe['tema'].iloc[-2]) &
(dataframe['tema'].iloc[-1] < dataframe['tema'].iloc[-3]))

相关内容

  • 没有找到相关文章

最新更新