Python 数据建模与分析项目实战预备 Day 4 - EDA(探索性数据分析)与可视化
✅ 今日目标
- 使用 Pandas + Matplotlib/Seaborn 对简历数据进行探索性分析
- 分析不同字段与目标变量的相关性
- 通过可视化呈现简历筛选的潜在规律
🧾 一、建议分析内容
🔹 分类字段分析
字段 | 图表建议 | 说明 |
---|---|---|
degree | 柱状图(分组通过率) | 分析学历与通过率关系 |
university_type | 条形图 | 是否为双一流影响筛选? |
🔹 数值字段分析
字段 | 图表建议 | 说明 |
---|---|---|
work_years | 箱型图 / 小提琴图 | 工龄 vs 通过率分布 |
project_count , desc_len | 散点图 | 项目数量/质量是否有利筛选 |
🔹 多变量交叉分析
- 使用
hue="pass_screening"
对比不同特征组合 - 相关系数热力图
sns.heatmap(df.corr())
📦 所需工具
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
✏️ 今日练习任务
编写 eda_visualize.py
实现以下内容:
-
读取原始数据
resume_data.csv
-
绘制多个字段与通过率之间的图表
-
可输出为本地图片或显示图形窗口
# eda_visualize.py - 简历数据可视化分析脚本import pandas as pd import seaborn as sns import matplotlib.pyplot as pltplt.rcParams['font.family'] = 'Arial Unicode MS' # Mac 用户可用 plt.rcParams['axes.unicode_minus'] = False# 设置风格 sns.set(style="whitegrid")# 读取数据 df = pd.read_csv("./data/resume_data.csv")# 设置字体显示中文(可选) plt.rcParams['font.family'] = ['Arial Unicode MS'] # macOS # plt.rcParams['font.sans-serif'] = ['SimHei'] # Windows # plt.rcParams['axes.unicode_minus'] = False# 学历 vs 通过率 plt.figure(figsize=(6, 4)) sns.barplot(x="degree", y="pass_screening", data=df) plt.title("学历 vs 简历通过率") plt.savefig("plot_degree_pass.png")# 学校类型 vs 通过率 plt.figure(figsize=(6, 4)) sns.barplot(x="university_type", y="pass_screening", data=df) plt.title("学校类型 vs 简历通过率") plt.savefig("plot_univ_pass.png")# 工龄分布对通过率影响 plt.figure(figsize=(6, 4)) sns.boxplot(x="pass_screening", y="work_years", data=df) plt.title("工龄 vs 简历通过情况") plt.savefig("plot_work_years_pass.png")# 项目描述长度 vs 筛选通过(散点图) plt.figure(figsize=(6, 4)) sns.scatterplot(x="project_desc_len", y="project_count", hue="pass_screening", data=df) plt.title("项目描述长度 & 数量 vs 筛选") plt.savefig("plot_project_scatter.png")# 相关系数热力图 plt.figure(figsize=(10, 6)) corr = df.corr(numeric_only=True) sns.heatmap(corr, annot=True, cmap="YlGnBu") plt.title("字段相关系数热力图") plt.savefig("plot_corr_heatmap.png")print("✅ 图表已生成并保存为 PNG 文件。")
字段相关系数热力图: