网站建站要多少钱,杭州专业程序开发公司,一级造价工程师考试时间,黄山学院统一信息门户平台点击 “AladdinEdu#xff0c;同学们用得起的【H卡】算力平台”#xff0c;H卡级别算力#xff0c;按量计费#xff0c;灵活弹性#xff0c;顶级配置#xff0c;学生专属优惠。
数据清洗 特征可视化 Kaggle数据集实操 读者收获#xff1a;1周内具备数据预处理能力
数…点击 “AladdinEdu同学们用得起的【H卡】算力平台”H卡级别算力按量计费灵活弹性顶级配置学生专属优惠。
数据清洗 × 特征可视化 × Kaggle数据集实操 读者收获1周内具备数据预处理能力
数据科学家80%的时间都在处理数据而掌握这四件套你将比90%的同行更高效。本文用可复现的Kaggle实战带你7天打通数据处理任督二脉。
一、四件套定位与协同作战
1.1 工具定位分析 分工明细
1.2 环境极速配置
# 创建虚拟环境
conda create -n data_science python3.9
conda activate data_science # 一键安装四件套
pip install numpy pandas matplotlib seaborn # 验证安装
import numpy as np
print(fNumPy {np.__version__}) 二、NumPy数据处理的原子操作
2.1 核心数据结构ndarray
创建数组的5种方式
import numpy as np # 从列表创建
arr1 np.array([1, 2, 3]) # 特殊数组
zeros np.zeros((3, 4)) # 3行4列零矩阵
ones np.ones((2, 3)) # 2行3列单位矩阵
arange np.arange(0, 10, 0.5) # 0-10步长0.5
random np.random.randn(100) # 100个正态分布数 2.2 数组操作向量化计算
传统循环 vs 向量化
# 低效循环避免
result []
for i in range(1000000): result.append(i * 2) # 高效向量化
arr np.arange(1000000)
result arr * 2 # 速度提升200倍 广播机制实战
A np.array([[1, 2], [3, 4]])
B np.array([10, 20]) # 自动广播计算
C A B # [[11,22], [13,24]] 三、Pandas数据清洗的瑞士军刀
3.1 核心数据结构解析 3.2 数据清洗六步法
以泰坦尼克数据集为例
import pandas as pd # 1. 数据加载
titanic pd.read_csv(titanic.csv) # 2. 数据概览
print(titanic.info())
print(titanic.describe()) # 3. 处理缺失值
titanic[Age] titanic[Age].fillna(titanic[Age].median())
titanic[Embarked] titanic[Embarked].fillna(S) # 4. 删除无效列
titanic.drop(columns[Cabin, PassengerId], inplaceTrue) # 5. 特征工程
titanic[FamilySize] titanic[SibSp] titanic[Parch]
titanic[IsAlone] (titanic[FamilySize] 0).astype(int) # 6. 类型转换
titanic[Pclass] titanic[Pclass].astype(category) 3.3 高级数据处理技巧
数据分组聚合
# 按舱位统计生存率
survival_by_class titanic.groupby(Pclass)[Survived].mean() * 100 # 多维度分析
class_sex_grouping titanic.groupby([Pclass,Sex]).agg( avg_age(Age, mean), survival_rate(Survived, mean)
) 数据合并
# 创建模拟票价表
fare_df pd.DataFrame({ Pclass: [1, 2, 3], BaseFare: [100, 50, 25]
}) # 合并到主表
titanic titanic.merge(fare_df, onPclass, howleft) 四、Matplotlib可视化基础构建
4.1 绘图三步法
import matplotlib.pyplot as plt # 1. 创建画布
fig, ax plt.subplots(figsize(10, 6)) # 2. 绘制图形
ax.plot(survival_by_class.index, survival_by_class.values, markero, linestyle--, colorb, label生存率) # 3. 美化设置
ax.set_title(泰坦尼克号舱位生存率, fontsize14)
ax.set_xlabel(舱位等级, fontsize12)
ax.set_ylabel(生存率(%), fontsize12)
ax.grid(True, linestyle--, alpha0.7)
ax.legend() # 保存输出
plt.savefig(survival_rate.png, dpi300, bbox_inchestight) 4.2 常用图表类型速查 五、Seaborn统计可视化进阶
5.1 关系分析三剑客
import seaborn as sns # 1. 分布关系图
sns.jointplot(datatitanic, xAge, yFare, kindscatter) # 2. 多变量关系
sns.pairplot(titanic[[Age,Fare,Pclass,Survived]], hueSurvived) # 3. 热度图
corr titanic.corr()
sns.heatmap(corr, annotTrue, cmapcoolwarm) 5.2 分类数据可视化
# 1. 箱线图
sns.boxplot(xPclass, yAge, hueSurvived, datatitanic) # 2. 小提琴图
sns.violinplot(xSex, yAge, hueSurvived, splitTrue, datatitanic) # 3. 计数图
sns.countplot(xPclass, hueSurvived, datatitanic) 特征关联分析矩阵
g sns.PairGrid(titanic[[Age,Fare,Pclass,Survived]])
g.map_diag(sns.histplot)
g.map_offdiag(sns.scatterplot)
g.add_legend() 六、Kaggle实战房价预测全流程
6.1 数据集加载与探索
# 加载Kaggle房价数据集
house pd.read_csv(house_prices.csv) # 快速探索
print(house.shape)
print(house.info()) # 目标变量分布
sns.histplot(house[SalePrice], kdeTrue)
plt.title(房价分布)
plt.show() 6.2 数据清洗与特征工程
# 1. 处理缺失值
missing house.isnull().sum().sort_values(ascendingFalse)
missing missing[missing 0]
house.drop(columnsmissing.index[:5], inplaceTrue) # 删除高缺失列 # 2. 数值型特征填充
num_cols house.select_dtypes(include[int64,float64]).columns
house[num_cols] house[num_cols].fillna(house[num_cols].median()) # 3. 类别型特征转换
cat_cols house.select_dtypes(includeobject).columns
house[cat_cols] house[cat_cols].fillna(Unknown)
house pd.get_dummies(house, columnscat_cols) # 4. 特征工程
house[TotalSF] house[TotalBsmtSF] house[1stFlrSF] house[2ndFlrSF]
house[Age] house[YrSold] - house[YearBuilt] 6.3 特征可视化分析
# 1. 房价与关键特征关系
fig, axes plt.subplots(1, 3, figsize(18, 6))
sns.scatterplot(xTotalSF, ySalePrice, datahouse, axaxes[0])
sns.boxplot(xOverallQual, ySalePrice, datahouse, axaxes[1])
sns.scatterplot(xGrLivArea, ySalePrice, datahouse, axaxes[2]) # 2. 特征相关性
corr_matrix house.corr()
plt.figure(figsize(14, 12))
sns.heatmap(corr_matrix[[SalePrice]].sort_values(bySalePrice, ascendingFalse), annotTrue, cmapviridis) 七、7天速通学习计划
每日学习路线
gantt title 7天速通计划 dateFormat YYYY-MM-DD section Day1-2 NumPy基础 数组创建与操作 active, des1, 2023-08-01, 2d section Day3-4 Pandas核心 数据清洗实战 crit, des2, 2023-08-03, 2d section Day5 Matplotlib 图表绘制技巧 des3, 2023-08-05, 1d