Создайте функцию
plot_distributions, которая принимает DataFrame и автоматически определяет числовые и категориальные признаки. Затем строит гистограммы или bar-графики в зависимости от типа данных. Это удобно для EDA (исследовательского анализа данных).Решение задачи🔽
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
def plot_distributions(df, max_categories=10):
for column in df.columns:
plt.figure(figsize=(6, 4))
if pd.api.types.is_numeric_dtype(df[column]):
sns.histplot(df[column].dropna(), kde=True)
plt.title(f'Гистограмма: {column}')
elif df[column].nunique() <= max_categories:
df[column].value_counts().plot(kind='bar')
plt.title(f'Категории: {column}')
else:
print(f'Пропущен {column}: слишком много уникальных категорий')
continue
plt.tight_layout()
plt.show()
# Пример использования
df = pd.DataFrame({
'age': [23, 45, 31, 35, 62, 44, 23],
'gender': ['male', 'female', 'female', 'male', 'male', 'female', 'female'],
'income': [40000, 50000, 45000, 52000, 61000, 48000, 46000]
})
plot_distributions(df)