返回首页

Roadmap
更新于 2026年10月28日 全文 268 字未阅读

第 2.2 节 编程练习#

预计学习时长: 40 分钟

练习方式: 新建一个 Jupyter Notebook,把下面的数据准备代码抄进去,然后每题独立完成。先写,写不出来再展开答案。

本课程使用的 Pandas 版本是 '3.1.0'

准备:先把数据建好#

import pandas as pd

data = {
    "订单号":   [1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008],
    "下单日期": ["2024-01-05", "2024-01-08", "2024-01-12", "2024-02-03",
                 "2024-02-15", "2024-03-02", "2024-03-20", "2024-04-08"],
    "城市":     ["北京", "上海", "北京", "广州", "上海", "北京", "深圳", "广州"],
    "商品":     ["手机", "电脑", "耳机", "手机", "键盘", "显示器", "耳机", "手机"],
    "销量":     [2, 1, 3, 2, 5, 1, 4, 2],
    "单价":     [3999.0, 7999.0, 599.0, 3999.0, 299.0, 1299.0, 599.0, 3999.0],
    "金额":     [7998.0, 7999.0, 1797.0, 7998.0, 1495.0, 1299.0, 2396.0, 7998.0],
    "客户评分": [4.5, 4.0, 4.8, 3.9, 4.2, 4.6, 4.1, 4.9],
}
df = pd.DataFrame(data)

练习 1:使用 loc 和 iloc 获取指定数据#

题目: 完成下面 5 个取数任务,每个都打印结果:

  1. 用 loc 取出标签为 3 的那一行(整行都要);

  2. 用 iloc 取出位置为 3 的那一行(整行都要);

  3. 用 loc 取出标签 2 这一行的「城市」和「金额」两个值;

  4. 用 iloc 取出位置 2 这一行的「城市」和「金额」两个值;

  5. 分别用 loc 和 iloc 取出前 2 行,然后打印两者的行数。

思考题: 第 1 题和第 2 题的结果看起来一样吗?第 5 题呢?

# 1. 按标签取第 3 行(标签是 3,不是「第 3 行」)
print(df.loc[3])
   订单号        下单日期  城市  商品  销量     单价     金额  客户评分
3   1004  2024-02-03  广州  手机   2  3999.0  7998.0       3.9
# 2. 按索引位置取第 3 行(位置 3 = 从 0 数第 4 行 = 标签 4)
print(df.iloc[3])
   订单号        下单日期  城市  商品  销量     单价     金额  客户评分
3   1004  2024-02-03  广州  手机   2  3999.0  7998.0       3.9
# 3. 按标签取某行某两列
print(df.loc[2, ["城市", "金额"]])
城市      北京
金额    1797.0
# 4. 按位置取某行某两列(第 3 列是城市,第 7 列是金额)
print(df.iloc[2, [2, 6]])
城市      北京
金额    1797.0
# 5. 取前 2 行:loc 写 0:2,iloc 写 0:2,结果行数一样
print(df.loc[0:2].shape)    # (3, 8)
print(df.iloc[0:2].shape)   # (2, 8)

练习 2:根据条件筛选满足要求的行#

阅读 --