Найти образцы между диапазонами двух столбцов - PullRequest
0 голосов
/ 08 апреля 2019

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

У меня есть фрейм данных с 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 ....

1 Ответ

1 голос
/ 08 апреля 2019

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

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

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

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

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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...