尝试1:
df[ df > 1.0 ]
:这会返回NAN
中的所有单元格。
Try2:
df.loc[ df > 1.0 ]
:这返回了KeyError: 0
df[df['A']> 1.0]
:这有效 - 但我想将过滤条件应用于所有列。
答案 0 :(得分:15)
如果您要执行的操作是仅选择任何一列满足条件的行,则可以使用DataFrame.any()
和axis=1
(进行逐行分组)。示例 -
In [3]: df
Out[3]:
A B C
0 1 2 3
1 3 4 5
2 3 1 4
In [6]: df[(df <= 2).any(axis=1)]
Out[6]:
A B C
0 1 2 3
2 3 1 4
或者,如果您尝试过滤所有列符合条件的行,请使用.all()
取代.any()
。 all
-
In [8]: df = pd.DataFrame([[1,2,3],[3,4,5],[3,1,4],[1,2,1]],columns=['A','B','C'])
In [9]: df
Out[9]:
A B C
0 1 2 3
1 3 4 5
2 3 1 4
3 1 2 1
In [11]: df[(df <= 2).all(axis=1)]
Out[11]:
A B C
3 1 2 1