首页 / MYSQL / 使用Mysql工具进行数据清洗
使用Mysql工具进行数据清洗
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用Mysql工具进行数据清洗,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2570字,纯文字阅读大概需要4分钟。
内容图文
数据资源
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导入数据库
一路continue
有一份追加数据
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
数据清洗
删除重复数据
分析:
先分组、再计数、再筛选、再去重
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'
;
内容总结
以上是互联网集市为您收集整理的使用Mysql工具进行数据清洗全部内容,希望文章能够帮你解决使用Mysql工具进行数据清洗所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。