获取数据后,对数据的清洗工作必不可少,常用的数据清洗方法主要有缺失值填充、数值替换、数据类型转换、数据分列、重复值处理等,清洗的数据结果直接影响最后数据分析的结果,一个成熟的数据分析师,在日常工作中绝大多数时间都在数据清洗,下面一起学习。

缺失值填充

缺失值处理,可以使用均值、线性插值等方法进行填充,这里使用均值来作为填充值填充,首先计算分数的平均值,然后筛选分数为空的行,使用UPDATE函数将空值填充为平均值。

#计算score列的均值
SELECT AVG(score) AS avg_score
FROM score;
#使用均值填充空值
UPDATE score SET score=74
WHERE score is null;
select * from score;

清理空格

清理字符中的空格,使用的是TRIM函数,并且用UPDATE函数更新表格。

#清理字符中的空格
UPDATE course SET Cname=TRIM(Cname);
select * from course;

数值替换

REPLACE函数可以对字符进行替换,类似于EXCEL的替换功能。

#修改和替换
UPDATE course
SET Cname=REPLACE(Cname,'语文','语文-A');
select * from course;

大小写转换

小写转换可以用LOWER函数,大写转换可以用UPER函数,这里使用LOWER函数将大写A转换为小写a。

#大小写转换
UPDATE course
SET Cname=LOWER(Cname);
select * from course;

数据类型转换

数据类型转换用CONVERT函数,括号中第一个写要转换类型的值,第二个写要转换成的数据类型,此处将出生日期转换为日期类型。

SELECT Sname,CONVERT(Sage,date) as '出生日期'
FROM student;

mySQL常用的数据类型如下:

数据分列

数据分列与EXCEL的功能相似,这里使用到的函数是SUBSTRING_INDEX,这里将"语文-A",分列成科目 语文 与评级为 两部分。

#数据分列
SELECT
SUBSTRING_INDEX(cname,'-',1) AS '科目',
SUBSTRING_INDEX(cname,'-',-1) AS '评级'
FROM course;

分列后的数据可以通过更新增加在原数据表中,下面是具体的代码。

#数据分列(改表),添加两个空字段
ALTER TABLE course
ADD (col1 VARCHAR(255),col2 VARCHAR(255));
SELECT * FROM course;

#更新分列后的字段内容
UPDATE course SET col1 = SUBSTRING_INDEX(cname,'-',1),
col2 =SUBSTRING_INDEX(cname,'-',-1);
SELECT * FROM course;

重复值处理

重复值的处理使用到DISTINCT函数,也可以使用数据分组功能,实现将某个字段去除重复值的功能。

#重复值
SELECT DISTINCT CId,Cname
FROM course;

点分享

点收藏

点点赞

点在看

利用SQL对数据进行清洗处理相关推荐

  1. 利用 Sql 实现数据透视表功能

    讲过很多次,数据分组和数据透视表很像,Sql 中的数据分组大家应该都很熟悉了,用的就是 group by.数据透视表是作为一个数据分析师最基本,也是使用频率最高的一个功能了,我们可以把明细数据从数据库 ...

  2. sql同时修改两个表的数据_如何用SQL做数据透视表?

    - 点击上方"中国统计网"订阅我吧!- 讲过很多次,数据分组和数据透视表很像,Sql 中的数据分组大家应该都很熟悉了,用的就是 group by. 数据透视表是作为一个数据分析师最 ...

  3. Sql 实现数据透视表功能

    总第148篇/张俊红 讲过很多次,数据分组和数据透视表很像,Sql 中的数据分组大家应该都很熟悉了,用的就是 group by.数据透视表是作为一个数据分析师最基本,也是使用频率最高的一个功能了,我们 ...

  4. 利用SQl对数据库实行数据拆分与组合

    利用SQl对数据库实行数据拆分与组合实现提供以下几种方案: 方法一: WITH CTE AS ( SELECT A.Id,A.[Uid],UserName FROM ( SELECT A.[id], ...

  5. 利用SQL语句对数据进行操作:插入、更新与删除数据行

    My目录 前言 一.T-SQL的组成 二.插入数据行 1.一次插入一行数据 2.一次插入多行数据 三.更新数据行 四.删除数据行 前言 结构化查询语言(Structured Query Languag ...

  6. mysq命令行导出sql_mysql利用命令导出数据sql语句

    下面我详细介绍关于在mysql中利用mysqldump导出数据备份并使用source命令实现数据导入,有需要的朋友可参考. 命令行source 导入数据库: 代码如下 1,将要导入的.sql文件移至b ...

  7. 利用SQL语句创建、删除、修改和查看数据表

    [技术导图] 1.连接Mysql服务:mysql -u root -p; 2.使用数据库:use teacherdb; 3.创建student表(无约束条件):create table student ...

  8. mysql导入sql文件时 避开_利用SQL脚本导入数据到不同数据库避免重复的3种方法...

    前言 相信大家都有所体会,无论何种语言,一旦看见代码中有重复性的代码则想到封装来复用,在SQL同样如此,若我们没有界面来维护而且需要经常进行的操作,我们会写脚本避免下次又得重新写一遍,但是这其中就涉及 ...

  9. 利用python进行数据分析学习笔记

    利用python进行数据分析 numpy:数组与向量化计算 pandas pandas读取和写入数据集及文件格式 数据清洗与准备 数据规整:连接.联合和重排列 绘图与可视化 数据聚合与分组操作 时间序 ...

最新文章

  1. JQ实现当前页面导航加效果(栏目页有效)
  2. 面向对象之this与super
  3. 从Vue.js源码中我学到的几个实用函数
  4. 到底什么成就了今天的人工智能?(上)
  5. 计算机基础优秀教案范文,《计算机基础知识与基本操作》教学课例(教学设计三等奖)...
  6. C语言加法测试题,c语言50练习题.doc
  7. 如何把pdf分割成多个?怎么把pdf文件分成多个?
  8. 还在考驾照的你知道汽车是怎么动起来的吗?
  9. 【论文阅读】Self-Knowledge Distillation with Progressive Refinement of Targets
  10. Cesium实现卫星在轨绕行
  11. 基础设施即代码(Infrastructure as Code)
  12. 关于打破思维的墙读后感
  13. uni showModeal
  14. SSH tunnel tips
  15. 苹果12面容解锁如何使用
  16. Makecode编程软件打不开
  17. HTML 中 id、name、class 区别
  18. ntt docomo 业务一览
  19. 袁春栋的MySQL的学习笔记
  20. could not find a getter for ... in class ... 异常的原因解析

热门文章

  1. o.s.b.d.LoggingFailureAnalysisReporte报错
  2. List - Map 工具类,list转为map
  3. Teams新功能更新【六月底】Microsoft Teams: Music on Hold
  4. 服务稳定性及应用防护方案
  5. [Python]程序结构与控制流
  6. 测试插件-infinitest介绍
  7. 转:java中static、final、static final的区别
  8. Windows 计划任务功能设置闹钟~
  9. lnmp搭建的常见错误
  10. 第十二章_请求和响应的装饰