Pandas: как выбирать строки на основе значений столбцов


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

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

df.loc[df['col1'] == value]

Способ 2: выберите строки, где значение столбца находится в списке значений

df.loc[df['col1']. isin([value1, value2, value3, ...])]

Способ 3: выбор строк на основе условий нескольких столбцов

df.loc[(df['col1'] == value) &(df['col2'] < value)]

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

import pandas as pd

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

#view DataFrame
df

 team points rebounds blocks
0 A 5 11 4
1 A 7 8 7
2 B 7 10 7
3 B 9 6 6
4 B 12 6 5
5 C 9 5 8
6 C 9 9 9
7 C 4 12 10

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

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

#select rows where 'points' column is equal to 7
df.loc[df['points'] == 7]

 team points rebounds blocks
1 A 7 8 7
2 B 7 10 7

Способ 2: выберите строки, где значение столбца находится в списке значений

В следующем коде показано, как выбрать каждую строку в DataFrame, где столбец «точки» равен 7, 9 или 12:

#select rows where 'points' column is equal to 7
df.loc[df['points']. isin([7, 9, 12])]

 team points rebounds blocks
1 A 7 8 7
2 B 7 10 7
3 B 9 6 6
4 B 12 6 5
5 C 9 5 8
6 C 9 9 9

Способ 3: выбор строк на основе условий нескольких столбцов

В следующем коде показано, как выбрать каждую строку в DataFrame, где столбец «команда» равен «B», а столбец «очки» больше 8:

#select rows where 'team' is equal to 'B' and points is greater than 8
df.loc[(df['team'] == 'B') &(df['points'] > 8)]

 team points rebounds blocks
3 B 9 6 6
4 B 12 6 5

Обратите внимание, что возвращаются только две строки, в которых команда равна «B», а «очки» больше 8.

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

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

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