Как выбрать строки по нескольким условиям, используя Pandas loc


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

Метод 1: выберите строки, которые соответствуют нескольким условиям

df.loc[((df['col1'] == 'A') &(df['col2' ] == 'G'))]

Способ 2: выберите строки, которые соответствуют одному из нескольких условий

df.loc[((df['col1'] > 10) |(df['col2' ] < 8))] 

В следующих примерах показано, как использовать каждый из этих методов на практике со следующими пандами DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
 'position': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'],
 'assists': [5, 7, 7, 9, 12, 9, 9, 4],
 'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
df

 team position assists rebounds
0 A G 5 11
1 A G 7 8
2 A F 7 10
3 A F 9 6
4 B G 12 6
5 B G 9 5
6 B F 9 9
7 B F 4 12

Метод 1: выберите строки, которые соответствуют нескольким условиям

В следующем коде показано, как выбирать только строки в DataFrame, где команда равна «A», а позиция равна «G»:

#select rows where team is equal to 'A' and position is equal to 'G'
df.loc[((df['team'] == 'A') &(df['position'] == 'G'))]

 team position assists rebounds
0 A G 5 11
1 A G 7 8

В DataFrame было только две строки, удовлетворяющие обоим этим условиям.

Способ 2: выберите строки, которые соответствуют одному из нескольких условий

В следующем коде показано, как выбрать только те строки в DataFrame, в которых число передач больше 10 или число подборов меньше 8:

#select rows where assists is greater than 10 or rebounds is less than 8
df.loc[((df['assists'] > 10) |(df['rebounds'] < 8))]

 team position assists rebounds
3 A F 9 6
4 B G 12 6
5 B G 9 5

В DataFrame было только три строки, удовлетворяющие обоим этим условиям.

Примечание. В этих двух примерах мы отфильтровали строки на основе двух условий, но с использованием & и | операторы, мы можем фильтровать столько условий, сколько захотим.

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

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

Как создать новый столбец на основе условия в Pandas
Как удалить строки, содержащие определенное значение в Pandas
Как удалить повторяющиеся строки в Pandas