泰涨知识|pandas数据预处理常用函数

作者:俞翔

如果有人问人工智能、数据挖掘的核心是什么呢?这个答案毋庸置疑是模型的选择,也就是算法。那如果有人问良好的模型的基石又是什么呢?那一定是一份优质的源数据。

在实际生产中,工程师们拿到的数据往往是一些“脏数据”,我们可以通俗的将“脏数据”理解为不能直接被使用的数据。这些数据通常有如下特点:

不完整:缺少某些对业务相关的属性值

不一致:数据的名称、单位、属性、大小等不一致

噪声点:存在一些影响后续分析的异常值,或者错误值

基于上述数据特点,我们需要对数据进行“数据预处理”,如果将数据预处理比做红烧鲫鱼,在做鱼之前呢我们需要对鱼进行去鳞,去腥,否则将会影响最终的鱼的味道。

数据预处理基本流程如图所示:

数据清洗:处理缺失值、光滑噪声数据、识别或删除离群点、解决不一致性来清理数据;

数据集成:使用多个数据源、数据立方体或数据文件;

数据规约:用替代的较小的数据表示形式替换元数据,得到信息内容的损失最小化,方法包括维规约、数量规约和数据压缩;

数据变化:将数据变换成使用挖掘的形式;

接下来我们使用pandas库进行数据清洗操作。

pandas是一个开发源码、BSD许可的库,提供高性能、易于编程的数据结构和数据分析工具。pandas可以对各种数据进行运算操作,比如归并、在形成、选择、还有数据清洗和数据加工等操作。

数据准备(采用jupyter进行编程)

数据集效果展示如下:

接下来开始使用pandas常用函数对数据集进行预处理。

duplicated函数验证是否存在重复值,该方法返回的是数据集每一行的检验结果,为布尔类型,若返回True,则存在重复值,示例如下:

drop_duplicates函数用于删除重复值,inplace=True参数,表示直接在源数据集上进行删除操作

删除后查验重复行已被删除,如下结果:

isnull函数用于检测数据集中是否包含缺失值。

dropna函数用于删除存在缺失值的行

效果图:

drop函数也可以删除缺失值,只是用于删除拥有缺失值的行或者列

效果图:

当然,针对与缺失值我们不仅仅只有粗暴的删除,亦可以使用fillna函数进行填充,方法参数method的值可以有ffill(替换法之前向替换)、bfill(替换法之后向替换),也可以使用value参数使用常数、列的均值、众数等填充。

cat函数用于字符串的拼接

get函数用于获取指定位置的字符串

效果图:

slice_replace函数用于使用给定的字符串,替换指定的位置的字符

效果图

split函数用于将一列扩展为好几列。

效果图

pad、center方法用于在字符串的左边、右边或者左右俩边添加指定字符;

效果图

findall函数利用正则表达式,在字符串中,返回查找结果的列表,与extract、extractall函数有区别;

效果图

至于pandas数据预处理方法还有很多很多,各位读者可借鉴https://pandas.pydata.org/ 官网学习。

对HCIE有任何的疑问

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210927A0AJ8300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券