Pandas: выберите строки, где значение появляется в любом столбце


Часто вам может понадобиться выбрать строки кадра данных pandas, в которых определенное значение появляется в любом из столбцов.

К счастью, это легко сделать с помощью функции .any pandas. В этом руководстве объясняется несколько примеров использования этой функции на практике.

Пример 1: найти значение в любом столбце

Предположим, у нас есть следующие Pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
 'assists': [5, 7, 7, 9, 12],
 'rebounds': [11, 8, 10, 6, 6]})

#view DataFrame
print(df)

# points assists rebounds
#0 25 5 11
#1 12 7 8
#2 15 7 10
#3 14 9 6
#4 19 12 6**

Следующий синтаксис показывает, как выбрать все строки DataFrame, содержащие значение 25 в любом из столбцов:

df[df.isin([25]).any(axis= 1 )]

 points assists rebounds
0 25 5 11

Следующий синтаксис показывает, как выбрать все строки DataFrame, содержащие значения 25, 9 или 6 в любом из столбцов:

df[df.isin([25, 9, 6 ]).any(axis= 1 )]

# points assists rebounds
#0 25 5 11
#3 14 9 6
#4 19 12 6**

Пример 2: поиск символа в любом столбце

Предположим, у нас есть следующие Pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
 'assists': [5, 7, 7, 9, 12],
 'position': ['G', 'G', 'F', 'F', 'C']})

#view DataFrame
print(df)

# points assists position
#0 25 5 G
#1 12 7 G
#2 15 7 F
#3 14 9 F
#4 19 12 C**

Следующий синтаксис показывает, как выбрать все строки DataFrame, содержащие символ G в любом из столбцов:

df[df.isin(['G']).any(axis= 1 )]


points assists position
0 25 5 G
1 12 7 G

Следующий синтаксис показывает, как выбрать все строки DataFrame, содержащие значения G или C в любом из столбцов:

df[df.isin(['G', 'C']).any(axis= 1)] 

points assists position
0 25 5 G
1 12 7 G
4 19 12 C

Дополнительные ресурсы

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