python数据清洗入门教程(完整版) |
您所在的位置:网站首页 › 县级面板数据如何清洗 › python数据清洗入门教程(完整版) |
数据清洗是整个数据分析过程的第一步,也是整个数据分析项目中最耗费时间的一步。数据清洗的过程决定了数据分析的准确性。随着大数据的越来越普及,数据清洗是必备的技能之一,本教程将较为完整地介绍利用python进行数据清洗的整个过程。即适合零基础的小白也可作为数据清洗大佬的复习指南。文章较长,干货较多,建议大家先收藏后观看,希望对大家有所帮助。 为了方便阅读和复习,本教程中的代码均采用图片形式,源代码和所需要的数据在下面的链接里 链接:https://pan.baidu.com/s/1-3PMsSs5XKjhszVXQIABpw 提取码:23uk 课程大纲 1.数据清洗之常用工具1.1 NumpyNumpy常用数据结构Numpy常用方法数组访问方法Numpy常用数据清洗函数 1.2 PandasPandas常用数据结构series和方法Pandas常用数据结构dataframe和方法series和dataframe常用方法 2.数据清洗之文件操作2.1 csv文件读写2.2 excel文件读写2.3 数据库文件读写 3. 数据清洗之数据表处理3.1 数据常用筛选方法3.2 数据增加和删除3.3 数据修改和查找3.4 数据整理3.5层次化索引 4. 数据清洗之数据转换4.1 日期格式数据处理4.2 字符串数据处理4.3 高阶函数数据处理 5. 数据清洗之数据统计5.1 数据分组运算5.2 聚合函数使用5.3 分组对象与apply函数5.4 透视图与交叉表 6. 数据清洗之数据预处理6.1 重复值处理6.2 缺失值处理6.3 异常值处理6.4 数据离散化处理 7. 总结与梳理7.1 数据清洗步骤7.2 函数大全7.3 数据清洗之总结 1.数据清洗之常用工具数据清洗意义 现实生活中,数据并非完美的, 需要进行清洗才能进行后面的数据分析数据清洗是整个数据分析项目最消耗时间的一步数据的质量最终决定了数据分析的准确性数据清洗是唯一可以提高数据质量的方法,使得数据分析的结果也变得更加可靠数据清洗常用工具 目前在Python中, numpy和pandas是最主流的工具Numpy中的向量化运算使得数据处理变得高效Pandas提供了大量数据清洗的高效方法在Python中,尽可能多的使用numpy和pandas中的函数,提高数据清洗的效率 1.1 Numpy Numpy常用数据结构 Numpy中常用的数据结构是ndarray格式使用array函数创建,语法格式为array(列表或元组)可以使用其他函数例如arange、linspace、zeros等创建数据库建立连接参数 conn =create_engine(‘mysql+pymysql://user:passward@IP:3306/test01’) • root: 用户名 • passward: 密码 • IP : 服务器IP,本地电脑用localhost • 3306: 端口号 • test01 : 数据库名称 df.to_sql(name, con=engine, if_exists=‘replace/append/fail’,index=False) • name是表名 • con是连接 • if_exists:表如果存在怎么处理。三个选项 append代表追加, replace代表删除原表,建立新表,fail代表什么都不干 • index=False:不插入索引index
参数解释 定义:在数据清洗过程中,很多时候需要将不用的数据整理在一起,方便后续的分析,这个过程也叫数据合并 合并方法:常见的合并方法有堆叠和按主键进行合并,堆叠又分为横向堆叠和纵向堆叠,按主键合并类似于sql里面的关联操作 横向堆叠将两张表或多张表在X轴方向,即横向拼接在一起纵向堆叠将两张表或多张表在Y轴方向,即纵向拼接在一起注意使用concat时,axis =1用于横向,0代表纵向注意join取inner或者outer时,分别代表交集和并集关联操作
定义:在一个轴上拥有两个或者两个以上的索引 • 使用loc语句进行访问 • loc里面接受tuple,如loc[(a,b),:]
![]() ![]() 分组计算根据某个或者某几个字段对数据集进行分组,然后运用特定的函数,得到结果 ![]() 在数据分析中,数据透视表是常见的工具之一,需要根据行或列对数据进行各个维度数据的汇总,在pandas中,提供了相关函数解决此类问题,交叉表更多用于频数的分析。 pivot_table( data, index, columns,values, aggfunc, fill_value,margins, margins_name=) Index : 行分组键 columns: 列分组键 values: 分组的字段,只能为数值型变量 aggfunc: 聚合函数 margins: 是否需要总计交叉表用于计算分组频率 pd.crosstab(index,columns,normalize) Index: 行索引 Columns: 列索引 Normalize: 数据对数据进行标准化,index表示行,column表示列![]() ![]()
pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False) x,类array对象,且必须为一维,待切割的原形式 bins, 整数、序列尺度、或间隔索引。如果bins是一个整数,它定义了x宽度范围内的等宽面元数量, 但是在这种情况下,x的范围在每个边上被延长1%,以保证包括x的最小值或最大值。 如果bin是序列,它定义了允许非均匀bin宽度的bin边缘。在这种情况下没有x的范围的扩展。 right,布尔值。是否是左开右闭区间,right=True,左开右闭,right=False,左闭右开 labels,用作结果箱的标签。必须与结果箱相同长度。如果FALSE,只返回整数指标面元。 retbins,布尔值。是否返回面元 precision,整数。返回面元的小数点几位 include_lowest,布尔值。第一个区间的左端点是否包含pandas.qcut(x, q, labels=None, retbins=False, precision=3, duplicates=’raise’) x q,整数或分位数组成的数组。 q, 整数 或分位数数组 整数比如 4 代表 按照4分位数 进行切割 labels, 用作结果箱的标签。必须与结果箱相同长度。如果FALSE,只返回整数指标面元。数据清洗实质上是将实际业务问题中,脏数据清洗干净,转换为’干净的数据’, 所谓的脏 ,指数据可能存在以下几种问题(主要问题): 数据缺失 (Incomplete) 是属性值为空的情况。如 Occupancy = “ ”数据噪声 (Noisy)是数据值不合常理的情况。如 Salary = “-100”数据不一致 (Inconsistent)是数据前后存在矛盾的情况。如 Age = “042” 或者 Birthday = “01/09/1985”数据冗余 (Redundant)是数据量或者属性数目超出数据分析需要的情况离群点/异常值 (Outliers)是偏离大部分值的数据数据重复是在数据集中出现多次的数据❤本教程到这终于结束了,希望对大家有所帮助❤ |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |