我通过两列中的值过滤数据框中的行.
由于某种原因,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)