mysql 乱码数据清洗_使用Mysql工具进行数据清洗

数据资源

https://gitee.com/pingfanrenbiji/resource/blob/master/%E9%87%91%E8%9E%8D%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/%E7%AC%AC%E4%B8%80%E7%AB%A0/database1/transaction_info.csv

将csv导入数据库

bde21272-b4b7-4fb8-a443-8137a6b01e5a.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=%252B0UWo6H83xzSatbdwx6XNSQrnDo%253D&Expires=1607133349

e5f51aad-8723-43e7-93f6-70b1901e0f1f.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=YybZ6%252B61UaWOQlAPZiNb8u5Gjf0%253D&Expires=1607133355

0622ed25-7faa-4c85-9740-0581206b9425.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=ubf8XXuQ5PCmbhcP3k4n2PlmA2M%253D&Expires=1607133377

2ff55e65-8730-436d-a327-a7ffc39f82c3.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=2CjAYsXaJJ2rtx4Q2UvkcHZAI9M%253D&Expires=1607133410

一路continue

a2d38bb1-5fab-44f4-a84d-e8f9c0cb63b4.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=9OBkHjDWvGnG%252FJIP%252FhhWHzRYPlo%253D&Expires=1607133456

e38ad83e-5dfd-4895-a8d2-7cceaab211c1.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=CIWvIm7%252FMQuCA58F9TjwLd1wkqc%253D&Expires=1607133547

有一份追加数据

https://gitee.com/pingfanrenbiji/resource/blob/master/%E9%87%91%E8%9E%8D%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/%E7%AC%AC%E4%B8%80%E7%AB%A0/database1/insert.csv

insert.csv数据字段和transaction_info.csv数据字段一致

将insert.csv里面的数据追加到transaction_info表中

同样的导入方式 导入insert.csv

07040d81-a7a3-4055-80af-a91090c2752a.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=tUTvk%252BN1dtUgqith%252F8AiV6x5P0k%253D&Expires=1607133788

718a639c-7ffc-4435-a824-b988a1fa058a.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=dtErvqAMFTZm08BrxDxqBR%252FV3y8%253D&Expires=1607133846

7096c005-2279-482a-af5c-3525f739995b.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=m6Z1d8bIGDFNORprbCBmZY2s1ks%253D&Expires=1607133857

数据清洗

删除重复数据

分析:

先分组、再计数、再筛选、再去重

select Transaction_index from transaction_info GROUP BY Transaction_index  HAVING count(Transaction_index)>1;

delete from transaction_info where Transaction_index='2009-01-02_0039';

修改null值为0

# 更新的逻辑是 先查找 再更新

update transaction_info set Amount=0,Last_Amount=0 where Amount is null;

update transaction_info set Amount=0,Last_Amount=0 where Last_Amount is null;

修正异常值

# 查询国家的异常值 对国家进行分组 然后统计个数

select Country,count(Country) from transaction_info GROUP BY Country;

# 从而可以找到异常值

Country in (1,2,3)

select * from transaction_info where Country in (1,2,3);

# 获取城市为Houston的国家信息 查看该城市属于哪个国家

SELECT DISTINCT Country FROM transaction_info WHERE City = 'Houston';

# 将异常值更新为正常的国家名称

UPDATE transaction_info SET Country = 'United States' WHERE City = 'Houston' AND Country = '3';

熟练使用mysql常用句式

数据

https://gitee.com/pingfanrenbiji/resource/tree/master/%E9%87%91%E8%9E%8D%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/%E7%AC%AC%E4%B8%80%E7%AB%A0/database2

案例

需求:

1、购买了产品1的用户数据 标是查询用户信息 所以用户表是基础表

2、Trans_Account_age(交易日期距离注册日期的自然月间隔)、days_since_last_login(交易距离上次登录的天数)

3、分组 在agegroup字段准确分组Trans_Account_age数据,以 “0~1”表示0至1(包含1), “1~12”表示1至12(包含12), “12+”表示12以上

SQL:

SELECT U.* ,T.*

, TimeStampDiff (MONTH, U.Account_Created, T.Transaction_date) AS Trans_Account_age #交易日期距离注册日期的自然月间隔

, TimeStampDiff (DAY, T.Last_login, T.Transaction_date) AS days_since_last_login #交易距离上次登录的天数

, CASE

WHEN TimeStampDiff (MONTH, U.Account_Created, T.Transaction_date) IN (0,1) THEN '0~1'

WHEN TimeStampDiff (MONTH, U.Account_Created, T.Transaction_date) > 1 AND TimeStampDiff (MONTH, U.Account_Created, T.Transaction_date) <= 12 THEN '1~12'

WHEN TimeStampDiff (MONTH, U.Account_Created, T.Transaction_date) > 12 THEN '12+'

ELSE ''

END AS agegroup

FROM user_info AS U

LEFT JOIN transaction_info AS T ON T.ID = U.ID

WHERE T.Product = 'Product1'

;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值