Как использовать оператор «ИЛИ» в Pandas (с примерами)


Вы можете использовать | символ как оператор «ИЛИ» в pandas.

Например, вы можете использовать следующий базовый синтаксис для фильтрации строк в кадре данных pandas, которые удовлетворяют условию 1 или условию 2:

df[(condition1) | (condition2)]

В следующих примерах показано, как использовать этот оператор «ИЛИ» в различных сценариях.

Пример 1: Используйте оператор «ИЛИ» для фильтрации строк на основе числовых значений в Pandas

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

import pandas as pd

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

#view DataFrame
print(df)

 team points assists rebounds
0 A 25 5 11
1 A 12 7 8
2 B 15 7 10
3 B 14 9 6
4 B 19 12 6
5 B 23 9 5
6 C 25 9 9
7 C 29 4 12

Мы можем использовать следующий синтаксис для фильтрации строк в DataFrame, где значение в столбце точек больше 20 или значение в столбце помощи равно 9:

#filter rows where points > 20 or assists = 9
df[(df.points > 20) | (df.assists == 9)]

 team points assists rebounds
0 A 25 5 11
3 B 14 9 6
5 B 23 9 5
6 C 25 9 9
7 C 29 4 12

Возвращаются только строки, в которых значение очков больше 20 или значение помощи равно 9.

Пример 2: Используйте оператор «ИЛИ» для фильтрации строк на основе строковых значений в Pandas

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

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
 'position': ['G', 'G', 'F', 'F', 'C', 'F', 'C', 'C'],
 'conference': ['W', 'W', 'W', 'W', 'E', 'E', 'E', 'E'],
 'points': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print(df)

 team position conference points
0 A G W 11
1 B G W 8
2 C F W 10
3 D F W 6
4 E C E 6
5 F F E 5
6 G C E 9
7 H C E 12

Мы можем использовать следующий синтаксис для фильтрации строк в DataFrame, где значение в столбце position равно G или значение в столбце position равно F или значение в столбце team равно H:

#filter rows based on string values
df[(df.team == 'H') | (df.position == 'G') | (df.position == 'F')]

 team position conference points
0 A G W 11
1 B G W 8
2 C F W 10
3 D F W 6
5 F F E 5
7 H C E 12

Возвращаются только те строки, которые соответствуют хотя бы одному из трех указанных условий.

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

В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:

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