我试图搜索这辆公共汽车的答案找不到任何答案。
我正在尝试选择满足条件“A和(B或C)”的数据框的子集,到目前为止我无法使其工作。
我正在尝试的代码:
mWebView.loadUrl("http://www.google.com");
此行给出了以下错误消息
df_subset = df[(df['a'] == A) & ((df['b']== B) or (df['b'].isnull()))]
无论如何要使这个工作?我知道我可以子集('a'= A和'b'= B)和('a'= A和'b'.isnull())并合并2个子集。但是在一条线上做这样会更好。
谢谢
答案 0 :(得分:2)
您需要|
使用or
,就像&
使用and
一样。
这也意味着您需要确保将这两个条件括起来,但您已经这样做了。
答案 1 :(得分:0)
考虑数据框df
np.random.seed([3,1415])
df = pd.DataFrame(
np.random.choice(list('ABC'), size=(20, 3)),
columns=list('abc'))
df = df.mask(np.random.choice((True, False), size=(20, 3), p=(.1, .9)))
df
a b c
0 A C C
1 C C B
2 B C A
3 C A C
4 A A C
5 A C NaN
6 NaN B A
7 NaN B C
8 A A A
9 A B C
10 B A B
11 B NaN A
12 A C A
13 C C C
14 NaN C C
15 B C A
16 C B A
17 A NaN B
18 C NaN A
19 A C B
df.query('a == "A" & (b == "B" | b != b)')
方法2
使用系列布尔运算符
df[df.a.eq('A') & (df.b.eq('B') | df.b.isnull())]
方法3
纠正你的想法
df[(df['a'] == 'A') & ((df['b'] == 'B') | df['b'].isnull())]
# ^
# |
a b c
9 A B C
17 A NaN B