Pandas: как выбрать строки между двумя значениями


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

 df_filtered = df[df[' points ']. between ( 25 , 35 )]

В этом конкретном примере выбираются все строки, значение которых в столбце точек находится между 25 и 35.

Если вместо этого вы хотите выбрать строки, значение которых в столбце точек не находится между 25 и 35, вы можете добавить тильду ( ~ ) перед именем столбца:

 df_filtered = df[ ~ df[' points ']. between ( 25 , 35 )]

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

Пример: выбор строк между двумя значениями в Pandas

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['Mavs', 'Mavs', 'Nets', 'Nets', 'Heat', 'Heat', 'Kings'],
                   ' points ': [22, 28, 35, 34, 29, 28, 23]})

#view DataFrame
print (df)

    team points
0 Mavs 22
1 Mavs 28
2 Nets 35
3 Nets 34
4 Heat 29
5 Heat 28
6 Kings 23

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

 #select rows where value in points column is between 25 and 35
df_filtered = df[df[' points ']. between ( 25 , 35 )]

#view filtered DataFrame
print (df_filtered)

   team points
1 Mavs 28
2 Nets 35
3 Nets 34
4 Heat 29
5 Heat 28

Обратите внимание, что были выбраны только строки, значение которых в столбце точек находится между 25 и 35.

Обратите внимание, что функция Between() включает значения в нижней и верхней границах.

Например, игрок со значением очков 35 был включен в отфильтрованный DataFrame.

Если вместо этого вы хотите выбрать только строки, значение которых в столбце точек не находится между 25 и 35, мы можем добавить тильду ( ~ ) перед именем столбца:

 #select rows where value in points column is not between 25 and 35
df_filtered = df[ ~ df[' points ']. between ( 25 , 35 )]

#view filtered DataFrame
print (df_filtered)

    team points
0 Mavs 22
6 Kings 23

Обратите внимание, что были выбраны только строки, значение которых в столбце точек не находится между 25 и 35.

Примечание . Полную документацию по функции pandas Between() можно найти здесь .

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

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

Панды: выберите строки, в которых два столбца равны
Pandas: выберите строки из DataFrame, используя логический ряд
Pandas: выберите строки со значениями NaN

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *