数据预处理(二)(附带实例)
一、主要目的:
数据预处理是整个数据分析过程中最为重要的环节,数据预处理主要包括数据清洗、数据抽取、数据交换和数据计算等。熟悉在Python开发环境中支持相应数据预处理环节的可用模块以及其中的方法,通过查阅相关说明文档掌握python中相应模块中的方法进行预处理的步骤。基于一定的样例数据,编写预处理过程的示例代码。
二、主要内容:
1.插入记录
Pandas里并没有直接指定索引的插入行的方法,所以要用户自行设置。
2.修改记录
修改记录(数据)是比较常用的,比例数据中有些需要整体替换,有些需要个别修改等情况。
(1)整体替换
(2)个别修改
①单值替换
②指定列单值替换
③多值替换
3.交换行或列
可以直接使用reindex方法交换数据中的两行或两列,也可以自行设置
4.排名索引
- sort_index:重新排序
- reindex:重新索引
- set_index:重置索引
- reset_index:索引还原
5.数据合并
(1)记录合并
记录合并是指两个结构相同的数据框合并成一个数据框,也就是在一个数据框中追加另一个数据框的数据记录。
(2)字段合并
字段合并是指将同一个数据框中的不同列进行合并,形成新的列。
(3)字段匹配
字段匹配是指不同结构的数据框(两个或两个以上的数据框),按照一定的条件进行匹配合并,即追加列。类似于excel中的VLOOKUP函数。
6.数据计算
(1)简单计算
简单计算是指通过对各字段进行加、减、乘、除等四则算术运算,得出的结果作为新的字段。
(2)数据标准化
数据标准化(归一化)处理是数据分析和挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响数据分析的结果。
数据标准化常用的方法为:
① min-max标准化(Min-Max Normalization)
又名离差标准化,是对原始数据的线性转化,公式如下:
X*=(x-min)/(max-min)
② Z-score标准化方法
Z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。这种方法给予原始数据的均值(Mean)和标准差(Standard Deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1 。
将数据按其属性(按列进行)减去其均值,并除以其标准差,得到的结果是,对于每个属性(每列)来说所有数据都聚集在0附近,标准差为1。
7.数据分组
数据分组是指根据数据分析对象的特征,按照一定的数据指标,把数据划分为不同的区间进行研究,以揭示其内在的联系和规律性。简单来说,就是新增一列,将原来的数据按照其性质归入新的类别中。其命令格式如下:
cut(series,bins,right=true,labels=Null)
学号 | 解析几何 |
2308024241 | 60 |
2308024242 | 55 |
学号 | 解析几何 | 类别 |
2308024241 | 60 | 及格 |
2308024242 | 55 | 不及格 |
8.日期处理
(1)日期转换
日期转换是指将字符型的日期格式转换为日期格式数据的过程。其命令格式如下: to_datetime(datastring,format)
(2)日期格式化
日期格式化是指将日期型的数据按照给定的格式转化为字符型的数据,其命令格式如下:
apply(lamda x: 处理逻辑)
datetime.strftime(x,format)
(3)日期抽取
日期抽取是指从日期格式里面抽取出需要的部分属性。其命令格式如下:
date_dt.dt.property
三、心得
在对数据进行预处理和分析时,常需要进行排序、重排、重置索引等操作以便于数据的解读和处理。在Python的Pandas库中,我们有sort_index, reindex, set_index, reset_index等方法来实现这些操作,它们提供了非常高效和便捷的方式来进行数据索引的处理。
此外,在处理时间序列数据时,日期的处理是一个重要的环节。包括日期的转换、格式化和抽取等操作都是必不可少的步骤。在Pandas库中,我们可以使用to_datetime, datetime.strftime, dt.property等方法来进行这些操作。对于一个具体的日期,我们可以抽取出年份、月份、日期、小时、分钟和秒等信息,这对于进一步的时间序列分析有着重要的作用。
通过本次学习,我对Pandas库中进行数据索引和日期处理的相关方法有了更深入的理解和掌握。在面对实际的数据处理任务时,我能够更熟练和灵活的使用这些工具,进一步提高数据处理的效率和质量。同时,我也认识到实践的重要性,只有通过实践,才能更好地理解和掌握这些方法,并将其应用到实际问题中。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!