这是'或'我试图从df中获取值的一部分。我想要做的是在条件的第一部分为真时获取值,如果不是,则从条件的第二部分获取值。这似乎并没有发生,因为订单似乎对我的df的变化没有影响。
(df[colA] == row[colA]-1) | (df[colA] == row[colA]-2)
实际发生了什么,是否有办法获取我想要的信息?
编辑:或条件是几个布尔条件之一,是更大函数的一部分。但这里的A栏说明了我的问题。我需要返回一个,如果没有A匹配-1,请从两个后面获取值。我已经使用相同的代码和函数来获取一行的值,并且当没有间隙时它可以正常工作。
A B
1 x
2 y
3 z
5 aa
6 bb
这是一个更好的例子。这类似于我用来获取改变df的函数的值的数组。我无法弄清楚
a。)如何确定这些值是否来自一个或两个位移
b。)如何编写代码,这样我可以默认为1,当一个不是真的时候只有两行
values=df_bkp[(df_bkp['B']==row['B'])&((df_bkp['A']==row['A']-1)|(df_bkp['A']==row['A']-2))][col].values
我理解当我这样做时值的来源:
values=df_bkp[(df_bkp['B']==row['B'])&(df_bkp['A']==row['A']-1)][col].values
答案 0 :(得分:-2)
我相信您可能正在使用不正确的“或”运算符。在Python中它只是“或”
((df[colA] == row[colA]) or (df[colA] == row[colA]-1)