视频加载失败

Lec2: 数据工具与可视化

使用 pandas 检查、筛选和整理数据,处理缺失值、聚合、连接与可视化。

课程导航与课程讲次
课程讲次
文章目录

pandas 数据结构#

对象含义
Series带索引的一维数据
DataFrame带行索引、列标签的二维表格,各列类型可以不同
Index用于标识和对齐的数据标签

一行对应一个样本,一列对应一种特征。索引标签不等于行位置;排序和筛选通常保留原索引。

Series 运算与赋值通常按标签对齐,普通列表赋值按位置对应。将特征和标签分别排序,可能破坏样本对应关系。

数据检查速查#

操作用途
df.head()、df.tail(3)查看首尾样本
df.shape、df.size行列数、单元格总数
df.info()类型和非缺失数量
df.describe()默认查看数值列统计
df.sample(n=3, random_state=42)可复现的随机抽查
df["Type"].value_counts(dropna=False)类别频数,包含缺失
df["Type"].unique()、.nunique()不同取值、不同非缺失值数量
df.isna().sum()、df.isna().mean()各列缺失数量、缺失比例

shape 和 size 是属性,不加括号。随机抽样有助于检查,但不能保证数据具有代表性。

索引、筛选与修改#

写法含义
df.iloc[0:3, 0:2]按位置取前三行、前两列,右端不包含
df.loc[0:2, ["Height"]]按标签取行列,有效标签切片包含两端
df["Height"]返回一维 Series
df[["Height"]]返回二维单列 DataFrame
df.loc[df["Height"] > 50]按布尔条件筛选行
df.loc[mask, "Height"] = value明确修改满足条件的位置
df.sort_values("Height", ascending=False)按高度降序排列
df.drop(columns=["Height"])返回删除指定列后的表

多个条件逐元素组合时使用 &、\|、~,每个比较条件加括号,例如 (df["Height"] > 50) & (df["Type"] == "Tower")。不要直接使用 Python 的 and、or。

loc[2] 取标签为 2 的行,iloc[2] 取第三行。多数转换返回结果对象,需要赋值才能保留结果;修改部分数据时优先使用一次 .loc 赋值,避免链式索引。

缺失值#

操作含义
df.dropna(subset=["Height"])删除高度缺失的行
df["Height"].fillna(value)使用给定值填补
df["Height"].isna().astype(int)构造缺失指示特征

删除样本可能改变群体分布,填补值也不一定具有真实语义。先判断缺失来自未采集、失败还是字段不适用,再决定处理方法。

预测任务中,先划分数据,再只用训练集计算中位数等填补统计量;验证和测试数据沿用同一变换。

聚合与透视表#

groupby 的过程是按键拆分、组内计算、合并结果。

操作含义
df["Height"].mean()高度均值
df["Height"].max()最大高度
df["Height"].idxmax()最大高度所在的索引标签
df.groupby("Type")["Height"].agg(["mean", "max"])按类型聚合高度
df.groupby("Type").size()每组总行数
df.groupby("Type")["Height"].count()每组高度非缺失数量

透视表用 index 指定行分组键,columns 指定列分组键,values 指定数值列,aggfunc 指定聚合方式。同一行列组合对应多个样本时,必须明确如何聚合。

表连接#

merge 按指定键连接表;join 常用于涉及索引的连接。

方式保留范围
inner两侧均匹配的记录
left左表全部记录及匹配结果
right右表全部记录及匹配结果
outer两侧全部记录,未匹配字段为缺失

同一个键在左、右表分别出现 m,nm,n 次,匹配结果可能产生:

m×nm\times n

行。左连接不保证结果行数等于左表行数。可用 validate="many_to_one" 等约束检查预期关系,连接后检查行数、缺失和样本标识唯一性。

可视化选择#

图形主要观察内容
散点图两个数值变量的关系、分组、离群点
折线图时间或其他有序坐标上的变化
直方图连续变量的分布、偏斜、多峰
柱状图类别数量或分组统计量
箱线图中位数、分散程度、潜在离群点
热力图相关矩阵等矩阵结构

Matplotlib 适合静态输出,Plotly 便于交互探索。读图时检查单位、坐标范围、分箱方式和未显示的缺失样本;相关性不能直接解释为因果。

文章目录