Я сделал функцию, чтобы посмотреть на выбросы с помощью коробочного графика, но я не могу удалить их из набора данных. Кто-нибудь знает, как изменить функцию, чтобы я получил весь кадр данных без выбросов? Теперь я просто получил один столбец. Я надеюсь, вы меня понимаете.
def outliers(variable):
'''Funktion um die Zahl der mathematisch definierten Ausreißer zu analysieren. Es werden die Features mit und ohne Ausreißer angezeigt'''
# Calculate 1st, 3rd quartiles and iqr.
global filtered
q1, q3 = variable.quantile(0.25), variable.quantile(0.75)
iqr = q3 - q1
# Berechne den unteren Zaun und den oberen Zaun der Ausreißer
# Jeder Wert unter l_fence und größer u_fence werden als Ausreißer analysiert.
l_fence, u_fence = q1 - 1.5*iqr , q3 + 1.5*iqr
# Beobachtungen der Ausreißer
outliers = variable[(variable<l_fence) | (variable>u_fence)]
print('Total Outliers of', variable.name,':', outliers.count())
# Hier werden die beobachteten Ausreißer gelöscht
filtered = variable.drop(outliers.index, axis = 0)
# Subplot erstellen
out_variables = [variable, filtered]
out_titles = [' Verteilung mit Ausreißer', ' Verteilung ohne Ausreißer']
title_size = 10
font_size = 8
plt.figure(figsize = (20, 5))
for ax, outlier, title in zip(range(1,3), out_variables, out_titles):
plt.subplot(2, 1, ax)
plt.subplots_adjust(bottom=0.2, right=0.8, top=0.9, hspace=.5)
sns.boxplot(outlier).set_title('%s' %outlier.name + title, fontsize = title_size)
plt.xticks(fontsize = font_size)
plt.xlabel('%s' %outlier.name, fontsize = font_size)
´´´
´´´´
outliers(variable=daten["Alter"])
´´´´