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

pg清洗数据到mysql 数据库清洗数据_数据可视化

缺失值填充

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

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

pg清洗数据到mysql 数据库清洗数据_数据挖掘_02

清理空格

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

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

pg清洗数据到mysql 数据库清洗数据_数据分析_03

数值替换

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

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

pg清洗数据到mysql 数据库清洗数据_数据可视化_04

大小写转换

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

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

pg清洗数据到mysql 数据库清洗数据_数据可视化_05

数据类型转换

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

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

pg清洗数据到mysql 数据库清洗数据_数据挖掘_06

mySQL常用的数据类型如下:

pg清洗数据到mysql 数据库清洗数据_数据分析_07

数据分列

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

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

pg清洗数据到mysql 数据库清洗数据_数据可视化_08

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

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

pg清洗数据到mysql 数据库清洗数据_数据可视化_09

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

pg清洗数据到mysql 数据库清洗数据_数据挖掘_10

重复值处理

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

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

pg清洗数据到mysql 数据库清洗数据_数据挖掘_11

pg清洗数据到mysql 数据库清洗数据_html_12

pg清洗数据到mysql 数据库清洗数据_数据挖掘_13