签到
苹果/安卓/wp
苹果/安卓/wp
客户端
0.0
0.00
推广加币
数据VIP
升级SVIP
注册
|
登录
项目交易
CDA数据分析师
CDA网校
CDA社区
CDA认证考试
CDA俱乐部
CDA Live
在线教育
JG学术培训
经管云课堂
CDA网校
CDA数据分析研究院
统计软件培训
金融科技
就学培训网
经管题库
培训证书查询
成为签约讲师
经管文库
专家入驻
学术博客
就学平台
美国在职研究生
论坛BBS
服务一览
VIP服务
数据VIP
数据库
兑换商城
广告服务
案例库
软件销售
校园代理
文献下载
会员课服务
我的
帖子
收藏
好友
我的空间
关注的人
关注的贴
找人
文库
任务
道具
勋章
网站地图
搜索
搜索
用户
人大经济论坛
›
标签
›
清洗
标签: 清洗
经管大学堂:名校名师名课
相关帖子
版块
作者
回复/查看
最后发表
利用SAS进行数据清洗技术——缺失值查询
SAS专版
glxfgsh
2013-8-17
22
24532
BEANJOJO
2020-1-21 11:08:11
数据清洗质量
数据分析与数据挖掘
leiping0744
2009-5-13
3
2696
R语言大数据清洗
2019-3-6 15:29:09
做模型时数据清洗软件
数据分析与数据挖掘
sallyisangel
2013-3-21
7
5212
qyfx770707
2017-6-20 17:37:36
数据挖掘入门-数据清洗ppt
数据分析与数据挖掘
merrycn
2009-12-3
9
3445
xtagmygmy
2016-2-24 22:36:33
数据清洗方法与构件的综合技术研究
商学院
12楼
2007-11-20
1
1858
qiancheng1203
2012-1-1 00:05:10
上帝的教导和马克思的语录
马克思主义经济学
mkszyz
2011-10-16
7
1941
mkszyz
2011-10-29 17:52:50
青岛继重庆之后掀起打黑风暴,公安机关几将清洗!
真实世界经济学(含财经时事)
onceonce
2011-10-1
30
5577
青岛_show
2011-10-3 13:46:48
女朋友教我用风油精清洗皮包爽歪歪啊
休闲灌水
magic/tp
2010-11-8
28
8211
liubohongp
2011-7-12 21:08:22
广州南沙莙荙菜现碘-131 清洗三次可去放射物
真实世界经济学(含财经时事)
Fisher2001
2011-4-10
0
760
Fisher2001
2011-4-10 22:07:06
乳业“清洗”大限延期一个月 小型乳企或遭淘汰
真实世界经济学(含财经时事)
xxp19821
2011-2-25
0
946
xxp19821
2011-2-25 09:22:14
苏联大清洗内幕.txt
版权审核区(不对外开放)
sycrane0818
2011-1-15
1
530
jyzsalex
2011-1-15 13:13:13
互联网接入大清洗 超千万用户受影响
产业经济学
jiangzhongyu
2010-9-29
0
1266
jiangzhongyu
2010-9-29 17:35:43
多氏帮帮汽车座垫专业清洗加盟手册
市场营销
lijtyl
2010-1-14
0
1184
lijtyl
2010-1-14 22:30:17
[讨论]美国将借G20会议清洗“敌人” 欧元很可能垮掉
真实世界经济学(含财经时事)
08kongkong
2008-11-8
5
1922
kiki_chou
2008-11-9 11:08:00
请教SPSS软件在清洗过程中出现的问题
SPSS论坛
lrpnicole
2008-7-16
6
6321
lrpnicole
2008-7-17 14:22:00
高楼清洗工从42楼坠落 抓住绳索生还(图
休闲灌水
cloundsky
2008-4-1
2
1416
idliulei
2008-4-1 15:05:00
更多...
相关日志
分享
使用python进行数据清洗
auto_water
2017-4-5 15:09
数据清洗是一项复杂且繁琐(kubi)的工作,同时也是整个数据分析过程中最为重要的环节。有人说一个分析项目80%的时间都是在清洗数据,这听起来有些匪夷所思,但在实际的工作中确实如此。数据清洗的目的有两个,第一是通过清洗让数据可用。第二是让数据变的更适合进行后续的分析工作。换句话说就是有”脏”数据要洗,干净的数据也要洗。本篇文章将介绍几种简单的使用python进行数据清洗的方法。 开始之前还是先在python中导入需要使用的库文件,然后进行数据读取,并创建名为loandata的数据表。这里为了更好的展示清洗的步骤和结果,我们使用的是lendingclub公开数据中的一小部分。 1 2 3 import numpy as np import pandas as pd loandata=pd.DataFrame(pd.read_excel('loandata.xlsx')) 数据清洗的目的有两个,第一是通过清洗让脏数据变的可用。这也是我们首先要解决的问题。无论是线下人工填写的手工表,还是线上通过工具收集到的数据,又或者是CRM系统中导出的数据。很多数据源都有一些这样或者那样的问题,例如:数据中的重复值,异常值,空值,以及多余的空格和大小写错误的问题。下面我们逐一进行处理。 数据表中的重复值 第一个要处理的问题是数据表中的重复值,pandas中有两个函数是专门用来处理重复值的,第一个是duplicated函数。Duplicated函数用来查找并显示数据表中的重复值。下面是使用这个函数对数据表进行重复值查找后的结果。 1 loandata.duplicated() 这里有两点需要说明:第一,数据表中两个条目间所有列的内容都相等时duplicated才会判断为重复值。(Duplicated也可以单独对某一列进行重复值判断)。第二,duplicated支持从前向后(first),和从后向前(last)两种重复值查找模式。默认是从前向后进行重复值的查找和判断。换句话说就是将后出现的相同条件判断为重复值。在前面的表格中索引为4的1311748和索引为1的条目相同。默认情况下后面的条目在重复值判断中显示为True。 Pandas中的drop_duplicates函数用来删除数据表中的重复值,判断标准和逻辑与duplicated函数一样。使用drop_duplicates函数后,python将返回一个只包含唯一值的数据表。下面是使用drop_duplicates函数后的结果。与原始数据相比减少了3行,仔细观察可以发现,drop_duplicates默认也是使用了first模式删除了索引为4的重复值,以及后面的另外两个重复值。 1 loandata.drop_duplicates() 数据表中的空值 第二个要处理的问题是数据表中的空值,在python中空值被显示为NaN。在处理空值之前我们先来检查下数据表中的空值数量。对于一个小的数据表,我们可以人工查找,但对于较为庞大的数据表,就需要寻找一个更为方便快捷的方法了。首先,对关键字段进行空值查找。这里我们分别选择了对loan_amnt字段和annual_inc字段查找空值。 Pandas中查找数据表中空值的函数有两个,一个是函数isnull,如果是空值就显示True。另一个函数notnull正好相反,如果是空值就显示False。以下两个函数的使用方法以及通过isnull函数获得的空值数量。 1 loandata.isnull() 1 loandata.notnull() 通过isnull函数和value_counts函数分别获得了loan_amnt列和annual_inc列中的空值数据量。 对于空值有两种处理的方法,第一种是使用fillna函数对空值进行填充,可以选择填充0值或者其他任意值。第二种方法是使用dropna函数直接将包含空值的数据删除。 1 loandata.fillna(0) 1 loandata.dropna() 这里我们选择对空值数据进行填充,首先处理loan_amnt列中的空值。通过totalpymnt字段和total_tec_int字段值相减计算出loan_amnt列中的近似值。因为这里除了利息以外还可能包括一些逾期费,手续费和罚息等,所以只能获得一个实际贷款金额近似值。由于贷款金额通常是一个整数,因此我们在代码的最后对格式进行了转换。 1 loandata =loandata .fillna(loandata -loandata ).astype(np.int64) 对于annual_inc列,在原始数据表中没有可用的辅助列进行计算,因此我们选择用现有数据的均值进行填充。这里可以看到贷款用户的收入均值为50060美金。使用这个值对annual_inc中的空值进行填充。 1 loandata =loandata .fillna(loandata .mean()) 数据间的空格 第三个要处理的是数据中的空格。空格会影响我们后续会数据的统计和计算。从下面的结果中就可以看出空格对于常规的数据统计造成的影响。 查看数据中的空格 我们再对loan_status列进行频率统计时,由于空格的问题,相同的贷款状态被重复计算。造成统计结果不可用。因此,我们需要解决字段中存在的空格问题。 1 loandata .value_counts() 去除数据中的空格 Python中去除空格的方法有三种,第一种是去除数据两边的空格,第二种是单独去除左边的空格,第三种是单独去除右边的空格。 1 loandata =loandata .map(str.strip) 1 loandata =loandata .map(str.lstrip) 1 loandata =loandata .map(str.rstrip) 这里我们使用去除两边的空格来处理loan_status列中的空格。以下是具体的代码和去除空格后的结果。 重新查看loan_status列中每种贷款状态的频率,之前空格造成的影响已经没有了,但这里还有个问题,就是大小写的问题。因此,我们还需要对每种贷款状态的大小写进行统一化处理。这是我们第四个要处理的问题。 大小写转换 大小写转换的方法也有三种可以选择,分别为全部转换为大写,全部转换为小写,和转换为首字母大写。 1 loandata =loandata .map(str.upper) 1 loandata =loandata .map(str.lower) 1 loandata =loandata .map(str.title) 这里我们将所有贷款状态转换为首字母大写模式,并再次进行频率统计。从下面的结果中可以看出,结果以及消除了空格和大小写字母混乱的影响。清晰的显示了贷款的三种状态出现的频率。 最后我们还需要对数据表中关键字段的内容进行检查,确保关键字段中内容的统一。主要包括数据是否全部为字符,或数字。下面我们对emp_length列进行检验,此列内容由数字和字符组成,如果只包括字符,说明可能存在问题。下面的代码中我们检查该列是否全部为字符。答案全部为False。 1 loandata .apply(lambda x: x.isalpha()) 除此之外,还能检验该列的内容是否全部为字母或数字。或者是否全部为数字。 1 loandata .apply(lambda x: x. isalnum ()) 1 loandata .apply(lambda x: x. isdigit ()) 数据中的异常和极端值 第五个要处理的问题是数据中的异常值和极端值,发现异常值和极端值的方法是对数据进行描述性统计。使用describe函数可以生成描述统计结果。其中我们主要关注最大值(max)和最小值(min)情况。 检查异常和极端值 下面是对数据表进行描述统计的结果,其中loan_amnt的最大值和最小值分别为100000美金和36美金,这不符合业务逻辑,因此可以判断为异常值。 1 loandata.describe().astype(np.int64).T 异常数据替换 对于异常值数据我们这里选择使用replace函数对loan_amnt的异常值进行替换,这里替换值选择为loan_amnt的均值。下面是具体的代码和替换结果。 1 loandata.replace( ,loandata .mean()) 数据清洗的第二个目的是让数据更加适合后续的分析工作。提前对数据进行预处理,后面的挖掘和分析工作会更加高效。这些预处理包括数据格式的处理,数据分组和对有价值信息的提取。下面我们逐一来介绍这部分的操作过程和使用到的函数。 更改数据格式 第一步是更改和规范数据格式,所使用的函数是astype。下面是更改数据格式的代码。对loan_amnt列中的数据,由于贷款金额通常为整数,因此我们数据格式改为int64。如果是利息字段,由于会有小数,因此通常设置为float64。 1 loandata =loandata .astype(np.int64) 在数据格式中还要特别注意日期型的数据。日期格式的数据需要使用to_datatime函数进行处理。下面是具体的代码和处理后的结果。 1 loandata =pd.to_datetime(loandata ) 格式更改后可以通过dtypes函数来查看,下面显示了每个字段的数据格式。 1 loandata.dtypes 数据分组 第二步是对数据进行分组处理,在数据表的open_acc字段记录了贷款用户的账户数量,这里我们可以根据账户数量的多少对用户进行分级,5个账户以下为A级,5-10个账户为B级,依次类推。下面是具体的代码和处理结果。 1 2 3 bins = group_names = loandata = pd.cut(loandata , bins, labels=group_names) 首先设置了数据分组的依据,然后设置每组对应的名称。最后使用cut函数对数据进行分组并将分组后的名称添加到数据表中。 数据分列 第四步是数据分列,这个操作和Excel中的分列功能很像,在原始数据表中grade列中包含了两个层级的用户等级信息,现在我们通过数据分列将分级信息进行拆分。数据分列操作使用的是split函数,下面是具体的代码和分列后的结果。 1 grade_split = pd.DataFrame((x.split('-') for x in loandata.grade),index=loandata.index,columns= ) 完成数据分列操作后,使用merge函数将数据匹配会原始数据表,这个操作类似Excel中的Vlookup函数的功能。通过匹配原始数据表中包括了分列后的等级信息。以下是具体的代码和匹配后的结果。 1 loandata=pd.merge(loandata,grade_split,right_index=True, left_index=True) Read more: http://bluewhale.cc/2016-08-21/python-data-cleaning.html#ixzz4dMAdrcGL
14 次阅读
|
0
个评论
分享
清洗厨房七大妙招
wnh728
2015-9-16 08:17
清洗厨房七大妙招 厨房易脏、油腻等等问题一直困扰着很多吃货,面对厨房的清洁问题,用两个字来形容就是:伤神!下面生活妙招网小编就和大家一起来解决这个问题。 1、 抽油烟机的清洁小妙招 厨房里面最难清洁的电器就是抽油烟机了。清洗抽油烟机的时候,可以先将油盒里的油污倒掉,然后将油盒浸泡在肥皂水或者中性清洁剂兑成的温水中,大概20分钟左右,如果油污顽固,可以浸泡40分钟或者更久,这样清洗就简单多了。 2、 煤气灶的清洁小妙招 煤气灶最易清洁的时机是在刚刚做完饭,煤气灶还有余温的时候。这时用湿布加肥皂水或苏打水擦拭,除污效果特别好。如果等到煤气灶完全冷却,油污等污垢就很难清洁了。 3、 水池的清洁小妙招 家里如果没有专门的水池清洁剂,用食盐也能清洗掉水池里的油污。在有油污的地方撒一点盐,然后用废旧的保鲜膜反复擦拭,最后用温水清洗几遍,也能把水池清洗得光亮如新。 4、 水龙头的清洁小妙招 水龙头上难以清除的水渍,其实用橙子皮就能去除。用橙子皮带颜色的一面搓水龙头污渍,水龙头便立刻光亮如新。或者用一片新鲜的柠檬在水龙头上转几圈,擦拭几次也能清除。 5、 菜刀、砧板的清洁小妙招 家里的菜刀如果生锈,可以用土豆或胡萝卜片沾少许细沙擦洗,菜刀上的铁锈就能够被清除。另外,砧板容易产生异味,用食醋与200毫升温水混合,倒在铺好纸巾的切菜板上放置15分钟,不仅能消除异味,上面的污垢也容易清除,还有杀菌的作用。 6、 瓷砖的清洁小妙招 将卫生纸覆盖在沾有油污的瓷砖上,然后喷上清洁剂,放置一会儿后将卫生纸撕掉,最后用干净的抹布沾上清水,擦拭几次就可以清除掉油污。 7、 锅盖的清洁小妙招 家里的锅盖经常有一层厚厚的油污,清洁十分费力。但是用蒸汽蒸锅盖的方法,特别有效。锅内放少许水,将锅盖反盖在锅上,水烧开后放少许清洁剂,让蒸汽熏蒸锅盖。等到油污变得发白柔软时,用软布擦拭,锅盖就变得光亮了。
0
个评论
分享
香蕉、橘子等水果不清洗剥皮吃不卫生
wnh728
2014-5-7 06:58
香蕉、橘子等水果不清洗剥皮吃不卫生 香蕉、橘子等水果不清洗剥皮吃是错误的。我们在吃李子或草萄等水果的时候,都会先清洗一下,但吃香蕉、橘子或芒果的时候,有些人却不会清洗。清洗剥皮吃的水果听起来有些奇怪但事实上,不清洗这类水果,水果表面的有害细菌就会沾染到手上,切开水果时甚至会侵入水果内部造成污染,对身体构成危害。
1 次阅读
|
0
个评论
分享
蔬菜先切后清洗不行
wnh728
2014-3-22 07:45
蔬菜先切后清洗不行 蔬菜先切后清洗的方法不对。因为蔬菜中富含的B族维生素和维生素c,在蔬菜切碎后,其中大量的维生素从刀口处溶解于水随水流失。菜切得越碎,冲洗次数越多或浸泡时间越长,维生素的损失也越多。 止确的方法是将整个蔬菜叶片直接清洗,这样没有刀口,就大大减少了蔬菜与水接触的表面积,不会出现蔬菜内维生素的流失现象。
2 次阅读
|
0
个评论
分享
KINLYVAC真空泵的清洗事项
kinway5
2013-3-26 15:40
KINLYVAC 真空泵的清洗事项 庆威按照 50% 真空泵油, 50% 石蜡或柴油比例调配 2L 混合物停泵断电,使进气口通大气 \ 注入清洗液 \ 旋上加油塞 \ 关闭进气口 \ 上电运行至少半小时 \ 排放清洗液。(因使用石蜡或柴油,启动后会有臭味散发,可以让泵在在适当地方空转直到臭味消失)
8 次阅读
|
0
个评论
更多...
京ICP备16021002-2号
京B2-20170662号
京公网安备 11010802022788号
论坛法律顾问:王进律师
知识产权保护声明
免责及隐私声明
GMT+8, 2024-4-27 04:30
积分 0, 距离下一级还需 积分