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

哨兵值变 null

中等 05-null 缺失值 Nonesentinelstringtrim

客户导出表里用了几种“哨兵值”表示缺失。清洗 email 和 phone 两列:

  1. 先去掉首尾空白字符。
  2. 去掉空白后,如果值是 N/A、空字符串 "" 或 -,就变成 null。比较区分大小写,必须完全相等(n/a、--、N / A 都不算哨兵值)。
  3. 其余值输出去掉首尾空白后的结果;原本就是 null 的仍是 null。

id 原样输出(id 可能重复,重复的行照常输出)。

输入

  • raw_customers(id, full_name, email, phone, birthday, signup, vip, spend),所有列都是字符串。

输出

列为 id, email, phone,行数与输入相同,行顺序不限。

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

raw_customers messy/raw_customers
#idstringfull_namestringemailstringphonestringbirthdaystringsignupstringvipstringspendstring
1 1 xu ming xu.ming60@mail.cn +86 189 3287 9217 - 2025-02-12 YES 3428
2 2 yang guo yang.guo68@example.com 10033907579 2003-04-21 05/01/2025 n 2,132.69
3 3 guo jing guo.jing91@mail.cn 15384019161 01/02/1994 2025-01-01 Y 3716.67
4 4 zhou jie zhou.jie26@qq.com 14514506123 29/02/2000 01/07/2025 no 999.73
5 5 liu yang liu.yang51@mail.cn 13049403 31/04/1999 2025-09-22 0 2024
6 6 zhang san ZHANG.SAN@Example.COM 13095597297 06/07/1978 15/11/2025 no $1,200.50
7 7 null zhou.jie54@example.com (111) 08436469 2003.3.24 2025-08-22 N $4,809.60
8 8 BOB smith N/A 173-0024-5892 11/08/1978 2026-06-19 yes 4842.25
9 9 LI WEI li.wei40@example.com (109) 17145211 - 13/05/2025 0 3592.13
10 10 he ping he.ping54@example.com 179-0966-9091 14/05/1977 02/02/2026 n 4395.47
11 11 guo jing guo.jing4@mail.cn 19170317974 05/05/1993 2025-07-27 0 2,316.99
12 12 he ping he.ping86@mail.cn 136-3363-9532 1992-01-23 11/10/2025 N 1442.64
13 13 BOB smith bob.smith67@mail.cn 1971-11-05 2025-07-14 1 $738.58
14 14 WANG FANG wang.fang@@mail.com N/A 09/04/1981 07/07/2026 yes 4152.00
15 15 grace HOPPER grace.hopper93@mail.cn (127) 73068985 - 2025-05-07 YES 1624
16 16 guo jing guo.jing34@qq.com (105) 81075864 2025-02-05 0 4,802.51
17 17 LIU YANG liu.yang93@qq.com 17791378 16/11/2025 no 740.03
18 18 GUO JING guo.jing26@mail.cn 18180960808 04/10/2004 2025-06-20 n 4196.37
19 19 zhou jie zhou.jie17@mail.cn 167-8513-6904 1971-01-07 13/01/2025 0 free
20 20 CHEN JING chen.jing66@qq.com - 28/04/2003 2025-05-20 0 1656
显示前 20 行,共 80 行

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

#idStringemailStringphoneString
1 1 xu.ming60@mail.cn +86 189 3287 9217
2 2 yang.guo68@example.com 10033907579
3 3 guo.jing91@mail.cn 15384019161
4 4 zhou.jie26@qq.com 14514506123
5 5 liu.yang51@mail.cn 13049403
6 6 ZHANG.SAN@Example.COM 13095597297
7 7 zhou.jie54@example.com (111) 08436469
8 8 null 173-0024-5892
9 9 li.wei40@example.com (109) 17145211
10 10 he.ping54@example.com 179-0966-9091
11 11 guo.jing4@mail.cn 19170317974
12 12 he.ping86@mail.cn 136-3363-9532
13 13 bob.smith67@mail.cn null
14 14 wang.fang@@mail.com null
15 15 grace.hopper93@mail.cn (127) 73068985
16 16 guo.jing34@qq.com (105) 81075864
17 17 liu.yang93@qq.com 17791378
18 18 guo.jing26@mail.cn 18180960808
19 19 zhou.jie17@mail.cn 167-8513-6904
20 20 chen.jing66@qq.com null
21 21 yang.guo28@example.com null
22 22 chen.jing44@qq.com (131) 71008989
23 23 xu.ming@@mail.com 168-5639-5003
24 24 zhao.lei91@qq.com 16993895441
25 25 amy.chen61@example.com null
26 26 grace.hopper7@example.com (160) 14445888
27 27 wang.fang50@mail.cn null
28 28 ada.lovelace75@example.com 12660560951
29 29 xu.ming32@qq.com 110-9671-3058
30 30 ma.yun@@mail.com +86 123 7184 8954
31 31 wang.fang4@qq.com 10138411
32 32 chen.jing28@mail.cn 16462529548
33 33 wu.han88@mail.cn +86 140 1439 1475
34 34 huang.rong88@mail.cn (178) 47536831
35 35 guo.jing23@example.com +86 117 4038 0829
36 36 zhang.san@@mail.com (102) 16337857
37 37 wu.han45@example.com 16178085016
38 38 ma.yun8@mail.cn 14142207097
39 39 yang.guo36@mail.cn 12488747658
40 40 ma.yun8@qq.com 130-7573-6926
41 41 LIU.YANG@Example.COM 13221549817
42 42 zhang.san5@qq.com +86 168 7245 4618
43 43 xu.ming16@qq.com 17067349170
44 44 zhou.jie@@mail.com 161-5449-7576
45 45 huang.rong@@mail.com 11661568232
46 46 grace.hopper3@mail.cn +86 153 5471 8638
47 47 yang.guo.mail.com (183) 90312379
48 48 liu.yang70@qq.com 11842592104
49 49 amy.chen85@example.com 146-9902-3670
50 50 zhao.lei93@qq.com 12679175699
显示前 50 行,共 80 行