快速掌握数据集全貌,包括样本量、特征类型、分布中心与离散趋势。
| 统计量 | 年龄 (Age) | 年收入 (Income) | 购买次数 (Purchases) | 满意度 (Score) |
|---|---|---|---|---|
| 样本量 | 1,000 | 1,000 | 1,000 | 1,000 |
| 均值 | 38.5 | 72,340 | 12.7 | 7.2 |
| 中位数 | 36.0 | 65,200 | 9.0 | 7.5 |
| 标准差 | 14.2 | 28,450 | 8.3 | 1.8 |
| 最小值 | 18 | 15,000 | 0 | 1.0 |
| 最大值 | 82 | 210,000 | 58 | 10.0 |
| 缺失值 | 2 | 15 | 0 | 8 |
🔍 缺失率 < 5% 采用均值/中位数填充;异常值采用盖帽法或对数变换
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
# 数据概览
df = pd.read_csv('customer_data.csv')
print(df.info())
print(df.describe())
# 缺失值可视化
sns.heatmap(df.isnull(), cbar=False, cmap='Oranges')
plt.title('缺失值热力图')
plt.show()
# 异常值可视化 (箱线图)
sns.boxplot(data=df[['Age', 'Income', 'Purchases']])
plt.title('异常值检测')
plt.show()
# 分布分析
df['Income'].hist(bins=30, color='#e8b384', edgecolor='white')
plt.title('收入分布 (右偏)')
plt.show()
⭐ 使用 pandas-profiling 或 ydata-profiling 一键生成报告