Untitled

mail@pastecode.io avatar
unknown
plain_text
15 days ago
1.2 kB
1
Indexable
Never
# Ограничиваем выбросы по правилу трех сигм для каждой группы (label)
df_filtered = df.copy()

# Для каждого label вычисляем среднее и стандартное отклонение
for label in df['label'].unique():
    mean = df_filtered[df_filtered['label'] == label]['total_monthly_litres_dil'].mean()
    std = df_filtered[df_filtered['label'] == label]['total_monthly_litres_dil'].std()
    
    # Фильтруем данные, оставляя значения в пределах трех сигм от среднего
    threshold = 3 * std
    df_filtered = df_filtered[~((df_filtered['label'] == label) & 
                                (abs(df_filtered['total_monthly_litres_dil'] - mean) > threshold))]

# Повторяем построение boxplot с отфильтрованными данными
plt.figure(figsize=(10, 6))
sns.boxplot(x='label', y='total_monthly_litres_dil', data=df_filtered)
plt.title('Boxplot of Volumes by Label (Filtered with 3 Sigma Rule)')
plt.xlabel('Label')
plt.ylabel('Total Monthly Litres')
plt.xticks(rotation=45)
plt.show()
Leave a Comment