头歌平台python数据分析——(6)数据清洗

第1关:数据去重

利用pandas将‘basketball.csv’中的数据导入名为dataset的DataFrame对象中,并使用drop_duplicates()函数对dataset中的Date列进行去重,不保留副本。将去重结果dealed和dataset返回。在这里插入图片描述

第2关:处理空值

在收集数据的过程中,可能会有一些空行或空项。有空值的数据不经过处理,通常是不可以直接使用的。本关卡将使用pandas查找数据集中的空值,并对空值进行处理。

在本关卡中,我们为你提供了一个鸢尾花的数据集。数据集总共有五个字段,分别是:

sepal.length
sepal.width
petal.length
petal.width
variety
除了variety字段内容是字符串外,其他字段的内容均是浮点数。你要完成的任务包括:

找出每项字段中各有多少空值,并按上文给出的字段顺序打印出来。
前四项字段的空值,各用该空值所在列的均值填充。
第五项字段的空值,统一填充为’Unknown’.
处理均值后的数据命名为dealed_data,并返回
注:pandas中均值的计算可以使用means()函数。示例:data[‘a’].means()的结果就是a字段的均值。在这里插入图片描述

### 关于网约车撤销订单的数据清洗方法 #### 创建表结构并加载数据 为了处理和分析网约车撤销订单的数据,在 `trafficdata` 数据库中创建名为 `cancelorder` 的表来存储清洗后的数据。此操作可以通过 Hive 或其他 SQL 支持工具完成。 ```sql CREATE TABLE IF NOT EXISTS trafficdata.cancelorder ( order_id STRING, city_code STRING, address STRING, user_id BIGINT, create_time TIMESTAMP, cancel_time TIMESTAMP, status INT, type INT, reason STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'; ``` 接着,通过命令行或脚本将位于 `/data/workspace/myshixun/data/canceldata.txt` 文件中的原始数据导入到新建立的表格里[^1]: ```bash LOAD DATA LOCAL INPATH '/data/workspace/myshixun/data/canceldata.txt' INTO TABLE trafficdata.cancelorder; ``` #### 清洗过程详解 ##### 处理缺失值 对于存在空缺项的情况,可以采用删除含有任何空白条目的记录或是填充合理的默认值得方式解决。例如,针对某些字段为空白的情形可设置特定标志位表示未知状态。 ```sql INSERT OVERWRITE TABLE clean_cancel_order SELECT * FROM( SELECT *, CASE WHEN reason IS NULL THEN '原因不明' ELSE reason END AS cleaned_reason FROM trafficdata.cancelorder) t WHERE t.cleaned_reason != ''; ``` ##### 统一日期时间格式 确保所有涉及的时间戳都遵循统一的标准格式(如 ISO 8601),以便后续计算与比较更加方便快捷。 ```sql ALTER TABLE clean_cancel_order ADD COLUMNS (create_timestamp TIMESTAMP, cancel_timestamp TIMESTAMP); UPDATE clean_cancel_order SET create_timestamp = CAST(create_time AS TIMESTAMP), cancel_timestamp = CAST(cancel_time AS TIMESTAMP); ``` ##### 去重 去除重复录入的信息有助于提高查询效率以及减少冗余度。 ```sql WITH unique_orders AS ( SELECT *, ROW_NUMBER() OVER(PARTITION BY order_id ORDER BY create_timestamp DESC) rn FROM clean_cancel_order ) DELETE FROM clean_cancel_order WHERE order_id IN (SELECT order_id FROM unique_orders WHERE rn > 1); ``` ##### 类型转换 确认各列的数据类型与其实际含义相符,比如电话号码应当被识别成字符串而非数值;而地理编码则可能更适合整数形式保存。 ```sql ALTER TABLE clean_cancel_order CHANGE COLUMN user_id user_id_str STRING; ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青柠Löwenzahn m.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值