数据清洗

来源:互联网 发布:股票技术指标软件 编辑:程序博客网 时间:2024/04/27 02:04

数据清洗

我们拿到的数据通常并不那么完美,像这样一份“脏乱差”数据需要如何清洗呢?

原始数据
excel下载地址:http://pan.baidu.com/s/1nvsMQJB

在清洗之前,首先需要明确我们清洗的目标,例如图中的数据:
老板的期望是——需要一份电话号码清单。那么,我们只需要保留“ID”、“姓名”、和“电话号码”就足够了。其中ID作为这个人的唯一标识符存在。

让我们一起看看,这个数据涉及以下特点:
1、列不分明,所有数据都在一个行内。
2、有很多杂乱字符,看起来真糟糕!
3、重复数据,有一些人名居然是一样的。
4、很多无效数据,我们要把它拿掉。

那么,我们动手来解决这些问题吧~

1.分列显示

首先我们来完成区分把这些混在一起的数据进行分列的操作。
1、在excel中打开。
2、点击数据-从表格。
这里写图片描述
3、在弹出的窗口中选择拆分列。
这里写图片描述
4、关闭并上载,完成~

2.杂乱数据清理

这里写图片描述

一、规则字符消除
1、在H3输入函数:=SUBSTITUTE(B3, “^”,”“)意思是,把B3列里的^全部替换为空值。
2、然后下拉,替换该列全部的数值。
3、复制,然后选择性黏贴,黏贴为数值和字符(替换掉函数)。
4、删除原数据列的firstname。

二、无规则字符消除
像:Rasmuss(ID 127)en、Me(ID 152)dina,这样的字符怎么消除呢?
1. 读取文件,然后使用正则表达式:

hfhh <- read.csv("D://D-电子书//数据分析//深入浅出数据分析//8 原始数据拆分.csv", header=TRUE)NewLastName <- sub("\\(.*\\)","",hfhh$LastName) #反斜杠为退出符,告诉R括号本身不是R表达式。.句点代表任何字符。*星号代表任何数目的前面字符。#

2、查询并输出文件:

hfhh$LastName <- NULL hfhh$LastName <- NewLastNamewrite.csv(hfhh, file="hfhh.csv")

3.重复数据处理

hfhhSorted <- hfhh[order(hfhh$PersonID),]#顺序排列person id#hfhhNamesonly <- hfhhSortedhfhhNamesonly$CallID <- NULLhfhhNamesonly$Time <- NULLhfhhNamesonly <- unique(hfhhNamesonly)write.csv(hfhhNamesonly, file="hfhhNamesOnly.csv")
1 0
原创粉丝点击