Как выбрать строки по нескольким условиям, используя 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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.