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

宽松转换

中等 06-cast 类型转换 castcoercestringcleaning

raw_customers.spend 是一列写法混乱的金额字符串(所有列都是字符串)。把它转成浮点数:

  1. 先删掉其中所有的 $ 和 , 字符(例如 $1,200.50 → 1200.50)。
  2. 剩下的字符串如果是合法的数字写法,就转成对应的浮点数;否则(例如 free、N/A、-、1.2.3、空字符串)结果为 null。
  3. 原本就是 null 的仍是 null。

数据保证金额里没有空白字符,也没有科学计数法、NaN、inf 这类特殊写法。

输入

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

输出

列为 id, spend(spend 为浮点数),行数与输入相同(id 可能重复,照常输出),行顺序不限。

输入表 (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,行顺序不限)

#idStringspendFloat64
1 1 3428.0
2 2 2132.69
3 3 3716.67
4 4 999.73
5 5 2024.0
6 6 1200.5
7 7 4809.6
8 8 4842.25
9 9 3592.13
10 10 4395.47
11 11 2316.99
12 12 1442.64
13 13 738.58
14 14 4152.0
15 15 1624.0
16 16 4802.51
17 17 740.03
18 18 4196.37
19 19 null
20 20 1656.0
21 21 1894.0
22 22 704.9
23 23 80.83
24 24 3788.68
25 25 566.53
26 26 3504.49
27 27 3920.35
28 28 3789.0
29 29 3900.0
30 30 207.0
31 31 389.0
32 32 435.27
33 33 2312.0
34 34 null
35 35 null
36 36 null
37 37 2227.93
38 38 2474.18
39 39 2018.0
40 40 277.56
41 41 4806.45
42 42 3543.44
43 43 3957.0
44 44 2428.31
45 45 4140.0
46 46 1848.43
47 47 3826.15
48 48 2114.92
49 49 4884.82
50 50 4746.1
显示前 50 行,共 80 行