Это еще один вопрос о выбросах IQR. У меня есть фрейм данных, который выглядит примерно так:
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.randint(0,100,size=(100, 3)), columns=('red','yellow','green'))
df.loc[0:49,'Season'] = 'Spring'
df.loc[50:99,'Season'] = 'Fall'
df.loc[0:24,'Treatment'] = 'Placebo'
df.loc[25:49,'Treatment'] = 'Drug'
df.loc[50:74,'Treatment'] = 'Placebo'
df.loc[75:99,'Treatment'] = 'Drug'
df = df[['Season','Treatment','red','yellow','green']]
df
Я хотел бы найти и удалить выбросы для каждого условия (например, Spring Placebo, Spring Drug и т. Д. c). Не весь ряд, только ячейка. И хотел бы сделать это для каждого из «красных», «желтых», «зеленых» столбцов.
Есть ли способ сделать это, не разбивая фрейм данных на целую кучу подфреймов данных со всеми условиями, разбитыми по отдельности? Я не уверен, было бы легче, если бы «Сезон» и «Обработка» обрабатывались как столбцы или индексы. Я в порядке с любым способом.
Я пробовал кое-что с .ilo c и .lo c, но, похоже, не могу заставить его работать.