Вы можете использовать следующие методы для выбора строк кадра данных 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