第 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 个取数任务,每个都打印结果:
用
loc取出标签为 3 的那一行(整行都要);用
iloc取出位置为 3 的那一行(整行都要);用
loc取出标签 2 这一行的「城市」和「金额」两个值;用
iloc取出位置 2 这一行的「城市」和「金额」两个值;分别用
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)