import pandas as pd

df = pd.read_csv('diabetes_012_health_indicators_BRFSS2015.csv')
print(df.head())
print(df.info())

# Check how many missing values exist
print(df.isnull().sum())

numeric_cols = df.select_dtypes(include=['float64', 'int64']).columns

for col in numeric_cols:
    Q1 = df[col].quantile(0.25)
    Q3 = df[col].quantile(0.75)
    IQR = Q3 - Q1
    lower = Q1 - 1.5 * IQR
    upper = Q3 + 1.5 * IQR
    df[col] = df[col].clip(lower, upper)

import matplotlib.pyplot as plt
import seaborn as sns

# Distribution of the target variable (Diabetes_012: 0, 1, 2)
sns.countplot(x='Diabetes_012', data=df)
plt.title('Class Distribution: Diabetes')
plt.show()

# Correlation heatmap
plt.figure(figsize=(12,10))
sns.heatmap(df.corr(), cmap='coolwarm', annot=False)
plt.title('Correlation Matrix')
plt.show()
