pandas

像整理一张超大的 Excel 表。

它负责读取、清洗、筛选和汇总数据。

小王, 18??小李, 21小张
姓名年龄小王18小李21小张
整齐!

只需记住 3 步

1读进来CSV、Excel、数据库,都能变成表格。
2整理好补空值、改格式、筛选需要的行。
3算答案分组、统计、汇总,得到结论。

亲手整理一次

🍎 3个 🍌 2个 🍎 1个 ❓
苹果4香蕉2

先认清 DataFrame

pandas 最核心的东西,就是一张带行名和列名的二维表。

index商品价格城市
0苹果8上海
1香蕉6北京
2苹果上海
🧱DataFrame 与 Series

整张表叫 DataFrame;只拿“价格”这一列,得到 Series。index 是每一行的编号。

表 = 多个有名字的列,按 index 对齐。

六个最常用动作

大多数 pandas 工作都能拆成下面六类。

📥读取

read_csv / read_excel:把文件变成表。

🔎选择

挑列、筛行,只保留需要的数据。

🧼清洗

补空值、删重复、统一日期和数字格式。

🧮计算

新增列、求和、平均、排序。

🗂️分组

groupby:按城市或商品分别统计。

🧩合并

merge:像拼图一样连接两张表。

真实任务:算各城市销售额

从原始订单到答案,只需要一条清晰的数据流水线。

订单.csv删掉重复订单数量 × 单价按城市求和
# 1. 读入订单
df = pd.read_csv("orders.csv")

# 2. 清洗
df = df.drop_duplicates()
df["价格"] = df["价格"].fillna(0)

# 3. 计算与汇总
df["销售额"] = df["数量"] * df["价格"]
answer = df.groupby("城市")["销售额"].sum()
df["价格"]:取出价格这一列fillna(0):空价格按 0 处理groupby("城市"):把相同城市装进同一篮子sum():每个篮子分别求和

筛选、排序、合并长什么样?

筛出高价订单
df[df["价格"] > 100]

条件为真的行会被留下。

从高到低排序
df.sort_values("价格",
  ascending=False)

ascending=False 表示降序。

连接商品信息
orders.merge(products,
  on="商品ID")

通过共同的商品ID对上两张表。

什么时候用 pandas?

场景更合适的工具原因
几十万行以内的探索分析pandas写法直接,生态丰富
人工录入与简单公式Excel鼠标操作更方便
数据库中数亿行统计SQL / 分布式工具避免整表塞进内存
持续实时流数据流处理系统pandas 偏批量处理

三个新手常踩的坑

数字被读成文字“10”与10不同。先看 df.dtypes,必要时转换类型。
空值偷偷影响结果先用 isna().sum() 数清楚,再决定填充或删除。
只看前几行head() 只是样本。还要检查 shape、describe() 和异常值。