在pandas DataFrame中,我有一系列布尔值。为了筛选出布尔值为True的行,我可以使用:
我认为为了筛选出只有列为False的行,我可以使用:
然而,这会失败,因为
df[df.column_x]
。我认为为了筛选出只有列为False的行,我可以使用:
df[~df.column_x]
。我觉得我以前做过这件事,并且已经看到它被接受作为答案。然而,这会失败,因为
~df.column_x
将值转换为整数。请参见下面的示例。import pandas as pd . # version 0.24.2
a = pd.Series(['a', 'a', 'a', 'a', 'b', 'a', 'b', 'b', 'b', 'b'])
b = pd.Series([True, True, True, True, True, False, False, False, False, False], dtype=bool)
c = pd.DataFrame(data=[a, b]).T
c.columns = ['Classification', 'Boolean']```
print(~c.Boolean)
0 -2
1 -2
2 -2
3 -2
4 -2
5 -1
6 -1
7 -1
8 -1
9 -1
Name: Boolean, dtype: object
print(~b)
0 False
1 False
2 False
3 False
4 False
5 True
6 True
7 True
8 True
9 True
dtype: bool
基本上,我可以使用c[~b]
,但不能使用c[~c.Boolean]
这个用法以前是可以的吗?难道我在做梦吗?