查看原文
其他

软件应用 | 几个可以帮你提高数据处理效率的Pandas函数方法

俊欣 数据Seminar 2022-12-31

本文转载自微信公众号:关于数据分析与可视化

今天和大家来分享几个Pandas方法可以有效地帮助我们在数据分析与数据清洗过程当中提高效率,加快工作的进程,希望大家看了之后会有收获。

首先导入模块和读取数据,这回用到的数据集中有各种各样类型的数据,链接为:https://www.kaggle.com/dgomonov/new-york-city-airbnb-open-data

import pandas as pddf = pd.read_csv("AB_NYC_2019.csv")df.head()

01pandas.factorize()

针对离散型的数据,我们通常用“sklearn”模块中的“LabelEncoder”方法来对其进行打标签,而在“pandas”模块中也有相对应的方法来对处理,“factorize”函数可以将离散型的数据映射为一组数字,相同的离散型数据映射为相同的数字,例如我们针对数据集当中的“room_type”这一列来进行处理

pd.factorize(df['room_type'])

结果返回的是元组形式的数据,由两部分组成,其中的第一部分是根据离散值映射完成后的数字另一部分则是具体的离散值数据


02pandas.get_dummies()

在上面的例子当中,我们对离散值进行了编码,编码的结果有大小的意义,例如针对尺码的离散值:【X,XL,XXL】我们映射出来的结果是{X: 1,XL: 2,XXL: 3},但是有时候离散值取值之间没有大小的意义,例如颜色:【红色、蓝色、黄色】等,而这个时候用上述的方法就不太合适了,我们会使用独热编码的方式来对离散值进行编码,

所谓独热编码,就是将离散型特征的每一种取值都看成一种状态,若某一个特征当中有N个不相同的取值,则我们就可以将该特征抽象成N中不同的状态。而在“Pandas”模块当中有相应的方法来实现上面的功能:

pd.get_dummies(df['room_type'])## 参数prefix: 给输出的列添加前缀##     drop_first: 将第一列的给去掉

我们将它与源数据进行合并的话
df.join(pd.get_dummies(df['room_type']))

03pandas.qcut()

有时候我们需要对数据集中的某一列进行分箱处理也就是把一段连续的数据切分成若干段,每一段的值看成一个分类。例如我们把学生年龄按15岁划分成一组,0-15岁的叫做少年,16-39岁的叫做青年,而31-45岁的叫做壮年。在这个过程当中我们把连续的年龄分成三个类别,“少年”、“青年”、和“壮年”就是各个类别的名称或者叫做是标签。在“Pandas”模块当中也有相对应的方法来实现分箱操作,

pd.qcut(df['price'],4) # 第二个参数确定的是要分成几段

当然出来的结果是Interval类型的数据,例如
pd.qcut(df['price'],4)[0]-------------------------------------## output## Interval(106.0, 175.0, closed='right')
我们可以将其变成字符串的格式
df["price_range"] = pd.qcut(df['price'],4)df["price_range"] = df["price_range"].apply(lambda x: str(x))

04pandas.drop_duplicates()

数据集当中存在的重复值可能会对机器学习以及深度学习的模型造成不好的影响,当遇到这样的情况的时候,我们使用“pandas”模块当中的“drop_duplicates”的方法来去除重复值,我们先人为的制造一些重复值出来,

df.loc[1] = df.loc[0]df.loc[2] = df.loc[0]df.loc[3] = df.loc[0]df.head()

df.drop_duplicates(inplace=True) # 前面几行的重复值被去除掉了df.head()


05pandas.clip()

由于极值的存在,经常会对模型的训练结果产生较大的影响,而在“pandas”模块中有针对极值的处理方法,“clip”方法中对具体的连续型的数据设定范围,要是遇到超过所规定范围的值,则会对其进行替换,替换成所设定范围中的上限与下限,例如下面的例子,我们针对数据集当中的“price”这一列进行极值的处理

df['price'] = df['price'].clip(100,140)df.head(8)
超过140的值被替换成了140了,没到100的值被100给代替了





星标⭐我们不迷路!
想要文章及时到,文末“在看”少不了!

点击搜索你感兴趣的内容吧

往期推荐


统计计量 | 回归分析及显著性知识点梳理

软件应用 | 分析两分钟,跑数两小时?这份SQL优化大全建议收藏

数据资源 | 再也没有比这更全的微观数据库合辑了!还不赶快收藏!

推荐 | 《大侦探经济学》新书一览

软件应用 | 我的实证论文常用的STATA笔记






数据Seminar




这里是大数据、分析技术与学术研究的三叉路口


推荐 | 马纯菲


    欢迎扫描👇二维码添加关注    

点击下方“阅读全文”了解更多

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存