Найти выборки между диапазонами двух столбцов

Я очень новичок в программировании на питоне. Я не мог найти способ написать эту часть моего кода. Я был бы признателен, если кто-то может мне помочь.

У меня есть фрейм данных с 3 атрибутами (4000 записей). Атрибут x1,x2,класс(двоичный).

Сначала я сделал точечный график и понял, что диапазон x1 от 3 до 13, а диапазон x2 от 3 до 8.

Я хочу получить данные в некоторых диапазонах: например:

if 2.5< x1 < 3.5 and 3.5< x2 < 4.5 ---> df1

if 3.5 <=x1 < 4.5 and 4.5<=x2 < 5.5 ---> df2

if ....

Я думаю, вы можете использовать groupby, где группы формируются pd.cut.

ALollz 08.04.2019 20:14

ты умеешь пользоваться масками? df1 = df[(df.x1 > 2.5) & (df.x1 < 3.5) & (df.x2 > 3.5) & (df.x2 < 4.5) ]

Tarifazo 08.04.2019 20:20
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как указывает Мстайно, логические маски — это правильная стратегия для доступа к диапазону значений в одном или нескольких столбцах.

Поскольку вы новичок в программировании на Python (и, следовательно, в pandas), важно разбить это на два этапа.

Во-первых, создается логическая маска, а во-вторых, создается логическая и сгенерированная маска.

Вот Макви, который можно запускать и повторно запускать, чтобы увидеть, как получается выборка значений в зависимых маскированных столбцах.

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(200,3),columns=['x1', 'x2', 'Class'])
mask1 = (df.x1 > -.4) & (df.x1 < .6)
mask2 = (df.x2 > -.4) & (df.x2 < .5)

# What do the masks look like in context?
df['mask1'] = mask1
df['mask2'] = mask1
print(df.head())

# apply the boolean masks so ranges in mask1 and mask2 are obtained
df1 = df[mask1 & mask2]

# sample the result
print(df1.sample(n=4))

Другие вопросы по теме