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