У меня есть dataFrame с именем data2, который состоит из 583 наблюдений и 11 переменных.в данных имеются выбросы.Я хочу приписать выбросы моих трех переменных, названных a, b и c.Все они типа int64.используя IQR и метод среднего вменения. Я создал две переменные из моих данных2 Q1 и Q3.
Q1 = data2[['a','b','c']].quantile(0.25)
Q3 = data2[['a','b','c']].quantile(0.75)
IQR = Q3 - Q1
print (IQR)
Затем я определил еще две переменные, т.е. lower_limit и upper_limit.
lower_limit = Q1 - 1.5 * IQR
upper_limit = Q3 + 1.5 * IQR
ЗатемЯ нахожу средние значения a, b и c.
mean_value = data2[['a','b','c']].mean()
print(mean_value)
Затем я создал одну функцию.
def imputer(value):
if value < lower_limit or value > upper_limit:
return mean_value
else:
return value
Теперь, когда я хочу поместить значения в фрейм данных, используя функцию imputeкоторый я создал ранее.
results = data2[['a','b','c']].apply(imputer) #Error Line
Это показывает мне ошибку, говоря ValueError: «Может сравнивать только идентично помеченные объекты Series.
Любая помощь приветствуется.