Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/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
Python中的IF和condition,检查ColA中过去的9行和ColB中的2行_Python_Pandas - Fatal编程技术网

Python中的IF和condition,检查ColA中过去的9行和ColB中的2行

Python中的IF和condition,检查ColA中过去的9行和ColB中的2行,python,pandas,Python,Pandas,需要有关设置python的IF和ELSE条件的帮助,该条件将生成具有布尔结果的新列 我有两组代码,我将它们解释为不同的python“方言”(我仍在学习python,仍然对两种不同的编码方式感到困惑) DF: 我有两列A和B,例如100行。ColumnA是一组1和0。ColumnB是一组值,可以沿行递增或递减 条件: 如果列A(ColA)在过去9行中有一个1,而列B(ColB)当前行>列B上一行,则new ColC=True。否则,请将ColC声明为True Rational 可乐代表了一种罕见的

需要有关设置python的IF和ELSE条件的帮助,该条件将生成具有布尔结果的新列

我有两组代码,我将它们解释为不同的python“方言”(我仍在学习python,仍然对两种不同的编码方式感到困惑)

DF: 我有两列A和B,例如100行。ColumnA是一组1和0。ColumnB是一组值,可以沿行递增或递减

条件: 如果列A(ColA)在过去9行中有一个1,而列B(ColB)当前行>列B上一行,则new ColC=True。否则,请将ColC声明为True

Rational 可乐代表了一种罕见的结果,它并不总是发生,也不总是0。所以我需要ColC返回TRUE。但是如果ColA中有一个事件(ColA=1),那么我需要检查接下来的9行,ColB是否大于前一行的ColB值

我尝试了以下方法,但得到了常见的布尔错误。 ValueError:序列的真值不明确。请使用a.empty、a.bool()、a.item()、a.any()或a.all()

需要帮助设置正确的方法来编写此IF和ELSE

if df.loc[:, ('ColA')].rolling(27).sum() >= 1:
    df.loc[:, ('ColC')] = df.ColB > df.ColB.shift(1)
else:
    df.loc[:, ('ColC')] = True
现在,进入“两种方言”问题。我有第一组代码我正在使用上述条件构建df,其中原始数据(close/open/pie/lamda/omega)正在通过条件检查运行,如下所示:

def BuildDataframeWithConditionsCheck(df):
   df.loc[:, ('Col1')] = df.close > df.open
   df.loc[:, ('Col2')] = df.pie > df.pie.shift(1)
   df.loc[:, ('Col3')] = df.lamda > df.omega
   df.loc[:, ('AllGood')] = df.loc[:, df.columns.str.startswith('Col')].all(axis=1) 

return df
第二组代码是我检查包含原始数据(close/open/pie/lamda/omega)的df的地方。在操作中,这个df不断地接收新行,我使用下面的函数来检查最新的行

def checkconditions(df):

   cond1 = df.close[-1] > df.open[-1]
   cond2 = df.pie [-1] > df.pie [-2]
   cond3 = df.lamda [-1] > df.omega[-1]

return all([cond1,cond2,cond3])

如何将ColB ColC IF ELSE和逻辑编码到第一组和第二组代码中

请告知