相关疑难解决方法(0)

pandas:索引数据框时的多个条件 - 意外行为

我通过两列中的值过滤数据框中的行.

由于某种原因,OR运算符的行为与我期望AND运算符的行为相反,反之亦然.

我的测试代码:

import pandas as pd

df = pd.DataFrame({'a': range(5), 'b': range(5) })

# let's insert some -1 values
df['a'][1] = -1
df['b'][1] = -1
df['a'][3] = -1
df['b'][4] = -1

df1 = df[(df.a != -1) & (df.b != -1)]
df2 = df[(df.a != -1) | (df.b != -1)]

print pd.concat([df, df1, df2], axis=1,
                keys = [ 'original df', 'using AND (&)', 'using OR (|)',])
Run Code Online (Sandbox Code Playgroud)

结果如下:

      original df      using AND (&)      using OR (|)    
             a  b              a   b             a …
Run Code Online (Sandbox Code Playgroud)

python boolean-logic pandas

100
推荐指数
3
解决办法
20万
查看次数

标签 统计

boolean-logic ×1

pandas ×1

python ×1