df-drills pandas · Polars · DuckDB SQL · DuckDB Relational 题目列表 登录

独热编码

中等 17-reshape 重塑 one-hotdummiescategorical

对客户等级 tier 做独热编码。

  • tier 的取值固定为 bronze、silver、gold 三种,三列都要输出,列名为 tier_bronze、tier_silver、tier_gold,即使某个等级在表里一个客户都没有(那一列全为 0)。
  • 取值是整数 0 或 1(不是布尔值):客户的等级等于该列对应的值时为 1,否则为 0。
  • tier 为 null 的客户不生成额外的列,三列都为 0。
  • 每个客户一行,只输出 customer_id 和这三列。

输入

  • customers(customer_id, name, email, city, signup_date, tier)

输出

列为 customer_id, tier_bronze, tier_silver, tier_gold,行顺序、列顺序不限。

输入表 (case base,共 2 个 case:base、missing)

customers shop/customers
#customer_idint64namestringemailstringcitystringsignup_datedatetierstring
1 1 Fang Wang fang.wang@shop.io Beijing 2025-03-13 silver
2 2 Dana Xu dana.xu@mail.cn null 2025-02-17 silver
3 3 Li Zhou li.zhou@example.com Guangzhou 2025-10-07 bronze
4 4 Ping Wang ping.wang@example.com null 2025-05-23 gold
5 5 Tom Zhang tom.zhang@example.com Shenzhen 2025-06-26 gold
6 6 王芳 user06@shop.io Hangzhou 2025-02-10 gold
7 7 Victor Xu victor.xu@example.com Shanghai 2025-12-05 bronze
8 8 Dana Chen dana.chen@example.com Hangzhou 2025-11-22 bronze
9 9 Uma Chen uma.chen@shop.io Guangzhou 2025-11-28 null
10 10 Ivy Zhou ivy.zhou@shop.io Hangzhou 2025-07-14 gold
11 11 Mia Smith mia.smith@mail.cn Shanghai 2025-04-28 gold
12 12 Xin Yang xin.yang@example.com Chengdu 2026-01-03 silver
13 13 Xin Smith xin.smith@mail.cn Beijing 2025-05-07 silver
14 14 Zoe Xu zoe.xu@mail.cn Beijing 2025-09-18 silver
15 15 Fang Liu fang.liu@shop.io Guangzhou 2025-08-05 bronze
16 16 杨磊 user16@mail.cn Shanghai 2025-12-15 silver
17 17 Ping Smith ping.smith@mail.cn null 2025-08-11 bronze
18 18 Oscar Zhou oscar.zhou@example.com Shanghai 2025-11-17 null
19 19 Kevin Liu kevin.liu@mail.cn Chengdu 2026-02-03 gold
20 20 Sara Wu sara.wu@example.com null 2025-07-05 gold
显示前 20 行,共 50 行

期望输出 (case base,行顺序不限)

#customer_idInt64tier_bronzeInt32tier_silverInt32tier_goldInt32
1 1 0 1 0
2 2 0 1 0
3 3 1 0 0
4 4 0 0 1
5 5 0 0 1
6 6 0 0 1
7 7 1 0 0
8 8 1 0 0
9 9 0 0 0
10 10 0 0 1
11 11 0 0 1
12 12 0 1 0
13 13 0 1 0
14 14 0 1 0
15 15 1 0 0
16 16 0 1 0
17 17 1 0 0
18 18 0 0 0
19 19 0 0 1
20 20 0 0 1
21 21 0 0 0
22 22 0 0 0
23 23 1 0 0
24 24 0 0 1
25 25 0 0 0
26 26 1 0 0
27 27 0 1 0
28 28 1 0 0
29 29 1 0 0
30 30 0 0 0
31 31 0 0 0
32 32 1 0 0
33 33 0 1 0
34 34 1 0 0
35 35 1 0 0
36 36 1 0 0
37 37 1 0 0
38 38 1 0 0
39 39 1 0 0
40 40 0 0 0
41 41 1 0 0
42 42 1 0 0
43 43 0 0 0
44 44 1 0 0
45 45 0 0 0
46 46 0 1 0
47 47 0 1 0
48 48 0 1 0
49 49 0 0 1
50 50 0 0 0
共 50 行