Python 3.x 使用|和&;的多个if语句的Pandas语法;操作员

Python 3.x 使用|和&;的多个if语句的Pandas语法;操作员,python-3.x,pandas,Python 3.x,Pandas,如果我想在Pandas中使用以下语法使用比较运算符创建If条件,我是否需要将或条件包装在它们自己的括号内 没有额外的括号 加括号 或者两者都有效?很难从文档中推断出哪些应该是正确的。我认为最好使用: 但你的说法不同: @深空-评论: 它与大熊猫没有直接关系,而是与动物有关。位and(&)优先于位or(|),因此在这种情况下需要括号 它与pandas没有直接关系,而是与Python中的运算符优先级有关。按位和(和)优先于按位或(|),因此在本例中需要括号。感谢jezrael,因此包装或条件似乎会

如果我想在Pandas中使用以下语法使用比较运算符创建
If
条件,我是否需要将
条件包装在它们自己的括号内

没有额外的括号

加括号


或者两者都有效?很难从文档中推断出哪些应该是正确的。

我认为最好使用:

但你的说法不同:

@深空-评论:


它与大熊猫没有直接关系,而是与动物有关。位and(&)优先于位or(|),因此在这种情况下需要括号



它与pandas没有直接关系,而是与Python中的运算符优先级有关。按位
)优先于按位
|
),因此在本例中需要括号。感谢jezrael,因此包装
条件似乎会导致与
isin
相同的结果,而第一个条件不起作用,这正是我所经历的。我将使用
isin
版本,谢谢。
df.loc[(df['Col1'] == 'Yes') &
       (df['Col2'] == 'Yes') &
       (df['Col3'] == 'No') |
       (df['Col3'] == 'Yes') |
       (df['Col3'] == 'Maybe'),
       ['Result']] = 'CORRECT'
df.loc[(df['Col1'] == 'Yes') &
       (df['Col2'] == 'Yes') &
       ((df['Col3'] == 'No') |
       (df['Col3'] == 'Yes') |
       (df['Col3'] == 'Maybe')),
       ['Result']] = 'CORRECT'
df.loc[(df['Col1'] == 'Yes') &
       (df['Col2'] == 'Yes') &
       (df['Col3'].isin(['No', 'Yes', 'Maybe'])), 'Result'] = 'CORRECT'
np.random.seed(1245)

a = ['No', 'Yes', 'Maybe']
df = pd.DataFrame(np.random.choice(a, size=(10, 3)), columns=['Col1','Col2','Col3'])
df.loc[(df['Col1'] == 'Yes') &
       (df['Col2'] == 'Yes') &
       (df['Col3'] == 'No') |
       (df['Col3'] == 'Yes') |
       (df['Col3'] == 'Maybe'),
       'Result1'] = 'CORRECT'

df.loc[(df['Col1'] == 'Yes') &
       (df['Col2'] == 'Yes') &
       ((df['Col3'] == 'No') |
       (df['Col3'] == 'Yes') |
       (df['Col3'] == 'Maybe')),
       'Result2'] = 'CORRECT'

df.loc[(df['Col1'] == 'Yes') &
       (df['Col2'] == 'Yes') &
       (df['Col3'].isin(['No', 'Yes', 'Maybe'])), 'Result3'] = 'CORRECT'

print (df)
    Col1   Col2   Col3  Result1  Result2  Result3
0  Maybe    Yes    Yes  CORRECT      NaN      NaN
1     No  Maybe     No      NaN      NaN      NaN
2    Yes     No  Maybe  CORRECT      NaN      NaN
3  Maybe    Yes     No      NaN      NaN      NaN
4    Yes    Yes  Maybe  CORRECT  CORRECT  CORRECT
5    Yes  Maybe    Yes  CORRECT      NaN      NaN
6  Maybe  Maybe    Yes  CORRECT      NaN      NaN
7  Maybe     No    Yes  CORRECT      NaN      NaN
8  Maybe  Maybe  Maybe  CORRECT      NaN      NaN
9    Yes    Yes     No  CORRECT  CORRECT  CORRECT