布尔索引大熊猫

时间:2015-09-20 23:08:20

标签: python pandas

这是'或'我试图从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

1 个答案:

答案 0 :(得分:-2)

我相信您可能正在使用不正确的“或”运算符。在Python中它只是“或”

((df[colA] == row[colA]) or (df[colA] == row[colA]-1)