探索性数据分析(EDA)实战:从可视化到洞察
一、前言
探索性数据分析(Exploratory Data Analysis,简称 EDA)是数据分析项目的核心环节:
-
帮助分析师快速理解数据结构和分布
-
发现潜在规律和异常点
-
为后续建模提供特征选择依据
本篇文章将使用 Python 对数据进行完整 EDA 实战操作。
二、导入数据
以 Titanic 数据集为例:
import pandas as pd import seaborn as sns df = sns.load_dataset('titanic') df.head() df.info()
关键点:
-
检查数据类型
-
查看缺失值
-
初步了解数据规模和字段
三、单变量分析
-
数值型变量
import matplotlib.pyplot as plt # 描述性统计 print(df['age'].describe()) # 分布直方图 plt.hist(df['age'].dropna(), bins=20, color='skyblue', edgecolor='black') plt.title('Age Distribution') plt.xlabel('Age') plt.ylabel('Count') plt.show()
-
类别型变量
sns.countplot(x='pclass', data=df) plt.title('Passenger Class Count') plt.show()
-
帮助理解变量的分布和偏态
四、双变量分析
-
数值型 vs 类别型
sns.boxplot(x='pclass', y='age', data=df) plt.title('Age by Passenger Class') plt.show()
-
类别型 vs 类别型
pd.crosstab(df['pclass'], df['survived']).plot(kind='bar', stacked=True) plt.title('Survival by Passenger Class') plt.show()
五、相关性分析
-
计算相关性矩阵
corr = df.corr() print(corr)
-
绘制热力图
sns.heatmap(corr, annot=True, cmap='coolwarm') plt.title('Correlation Heatmap') plt.show()
-
发现变量之间的线性关系
-
便于后续特征选择
六、缺失值与异常值分析
-
缺失值可视化
sns.heatmap(df.isnull(), cbar=False, cmap='viridis') plt.title('Missing Values Heatmap') plt.show()
-
异常值分析
sns.boxplot(x='fare', data=df) plt.title('Fare Outlier Detection') plt.show()
-
提前发现数据问题,避免影响建模
七、特征分布与交互分析
-
可用 散点图、成对图(pairplot)查看变量关系
sns.pairplot(df[['age','fare','survived']], hue='survived') plt.show()
-
可快速发现潜在规律和特征组合
更多推荐
所有评论(0)