Удалять необработанные кадры данных, не включенные в интервал между двумя другими столбцами - PullRequest
0 голосов
/ 27 ноября 2018

Мне нужно отбросить наблюдения, не включенные в интервал (пределы которых содержатся в двух других столбцах), и заменить значения NaN средним или медианным.Я думаю, что я должен использовать условие if с тремя, но я не очень уверен в кадре данных.

Пример кадра данных:

col1  lower_bound  upper_bound
  3        2            6 
  1        2            6 
  3        2            6 
  5        2            6 
  8        2            6 
  4        2            6 
 NaN       2            6 

желаемый пример вывода:

 col1  lower_bound  upper_bound
  3        2            6 
  3        2            6 
  5        2            6 
  4        2            6 
mean/mdn   2            6 

Заранее благодарю за помощь!

1 Ответ

0 голосов
/ 27 ноября 2018

Вы можете сделать это в 2 шага: fillna, чтобы заполнить NaN средним значением или медианой, и индексировать, используя between или 2 условия, чтобы получить строки, гдеcol1 между вашими границами

# Fill NaN in col1 with the mean
df.col1.fillna(df.col1.mean(),inplace=True)
# or with the median 
# df.col1.fillna(df.col1.median(),inplace=True)

# Index based on your conditions:
df[df.col1.between(df.lower_bound, df.upper_bound)]
# or:
#df[(df.col1 > df.lower_bound) & (df.col1 < df.upper_bound)]

   col1  lower_bound  upper_bound
0   3.0            2            6
2   3.0            2            6
3   5.0            2            6
5   4.0            2            6
6   4.0            2            6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...