Подтвердить что ты не робот

Как выбрать ячейки больше, чем значение в мультииндексе Pandas данных?

Попробуйте 1:

df[ df > 1.0 ]: это вернуло все ячейки в NAN.

Try2:

df.loc[ df > 1.0 ]: это возвращает KeyError: 0

df[df['A']> 1.0]: это работает. Но я хочу применить условие фильтра ко всем столбцам.

4b9b3361

Ответ 1

Если то, что вы пытаетесь сделать, это выбрать только строки, в которых любой столбец соответствует этому условию, вы можете использовать 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