一、前言

探索性数据分析(Exploratory Data Analysis,简称 EDA)是数据分析项目的核心环节:

  • 帮助分析师快速理解数据结构和分布

  • 发现潜在规律和异常点

  • 为后续建模提供特征选择依据

本篇文章将使用 Python 对数据进行完整 EDA 实战操作。


二、导入数据

以 Titanic 数据集为例:


import pandas as pd import seaborn as sns df = sns.load_dataset('titanic') df.head() df.info()

关键点:

  • 检查数据类型

  • 查看缺失值

  • 初步了解数据规模和字段


三、单变量分析

  1. 数值型变量


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()

  1. 类别型变量


sns.countplot(x='pclass', data=df) plt.title('Passenger Class Count') plt.show()

  • 帮助理解变量的分布和偏态


四、双变量分析

  1. 数值型 vs 类别型


sns.boxplot(x='pclass', y='age', data=df) plt.title('Age by Passenger Class') plt.show()

  1. 类别型 vs 类别型


pd.crosstab(df['pclass'], df['survived']).plot(kind='bar', stacked=True) plt.title('Survival by Passenger Class') plt.show()


五、相关性分析

  1. 计算相关性矩阵


corr = df.corr() print(corr)

  1. 绘制热力图


sns.heatmap(corr, annot=True, cmap='coolwarm') plt.title('Correlation Heatmap') plt.show()

  • 发现变量之间的线性关系

  • 便于后续特征选择


六、缺失值与异常值分析

  1. 缺失值可视化


sns.heatmap(df.isnull(), cbar=False, cmap='viridis') plt.title('Missing Values Heatmap') plt.show()

  1. 异常值分析


sns.boxplot(x='fare', data=df) plt.title('Fare Outlier Detection') plt.show()

  • 提前发现数据问题,避免影响建模


七、特征分布与交互分析

  • 可用 散点图成对图(pairplot)查看变量关系


sns.pairplot(df[['age','fare','survived']], hue='survived') plt.show()

  • 可快速发现潜在规律和特征组合

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐