首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python数据分析入门日记Day10:数据分析库Pandas:实现数据库查询操作

Python数据分析入门日记Day10

——Pandas库:实现数据库查询操作

今天学习用数据分析库Pandas来实现SQL操作,SQL实际上就是结构化查询语言的缩写,在SQL中常见的操作有四种:增、删、改、查,这四项工作用Pandas也是可以实现的。首先,还是导入之前一直利用的数据集“职工信息.xlsx”。

1、增

顾名思义“增”的意思就是添加新的行或列。

(1)首先,用字典的方式创建两行新的职工信息,数据中包含两名新职工的姓名、性别、年龄、收入等信息。

(2)将新增的两名职工信息数据转化成数据框形式,赋值给data2:

(3)pd.concat()

Pandas库中的.concat()函数用来连接两个数据框,输入代码如下:

由输出结果(截取部分)看出,新增的两名职工信息已经被添加到原来的职工信息表的最后两行:

发现在Pandas中对两个Dataframe进行拼接,拼接过程中两个数据框中的变量会自动对齐。

(3)按列对两个数据框进行拼接

对原有数据框data新增一列考核分数“Score”变量。

2、删

“删”就对已有数据进行删除表、行或列的操作。

(1)通常用“del”来删除Python中的一些对象。比如,删除数据框data2,输入以下代码:

再去查看data2时,就会出现报错,说明data2已经被删除了。

(2).drop():删除指定行

若想要删除数据中的第3行、第5行、第8行,利用.drop()函数,“( )”中输入所要删除行的索引值,输出结果如下:

发现索引值为2、4、7的数据信息所在行已经被删除完成了。

(3)利用布尔索引对数据信息进行删除

关于布尔索引,在近期的学习中总是碰到,如果想要删除数据中年龄“Age”50岁以下的员工信息,执行以下代码并查看结果,发现只剩下50岁以上的员工信息。

(4)删除指定列

想要对指定的列变量信息进行删除,依旧利用.drop()函数,在其参数中添加“axis=1”,旨在按列删除数据信息,并用.head()函数查看数据的前五行。加入需要删除收入“sr”和支出“zc”这两列信息。

3、改

“改”的作用就是修改原始数据的值,可以通过布尔索引或赋值的方法对原始数据进行修改。通过布尔索引对行标签进行提取,比如要修改员工“Ovaltine”的收入,输入以下代码:

运行并查看结果,发现Ovaltine的工资已经发生了改变:

4、查:数据查询

(1)聚合

Pandas库中通过.groupby()函数实现聚合,如果需要按职工性别分组对他们的年龄、收入等信息的均值进行计算。

可以看出,女性员工的平均年龄在43岁,平均收入在2882元,男性职工的平均年龄在47岁,平均收入在935元。

如果我们不需要分析年龄的平均值信息,在进行分组时,可以对年龄“Age”这一变量进行剔除,然后输出结果就会变成:

如果想要用年龄和性别分组,分析收入、支出等信息的均值,则通过以下操作实现:

按照输出结果,可以得到41岁的女性平均收入为824元,男性平均收入为845元等信息。

不研究年龄,研究性别对其他因素均值及中位数的影响差异,输入以下代码:

可以看出,性别差异对收入的均值的影响较大。男女职工的收入差异较为明显。

(2)排序

如果需要对数据根据某一变量进行重新排序,利用.sort_values()函数。首先,随机生成1~49中的10个数字,构成序列s。

利用.sort_values()函数对这10个数字进行重新排序,默认为升序,输出结果:

若需要对随机数进行降序排序,则在函数后增加“ascending=False”参数。

那么,在实际数据中,需要按照职工年龄对数据进行排序,做如下操作:

(3)多表连接

首先,创建一个职工考核分数表,并将其转化为数据框形式:

接下来,需要对这五名职工的分数和他们另外的信息进行关联,利用pd.merge()函数,后跟两个数据框名,on=“Name”旨在按职工姓名进行拼接。结果如下:

发现只有表data和表score中共有的职工才会被返回。另外,两个数据框的拼接有左连接和右连接,分别在pd.merge()函数后跟连接方式“how=left”或“how=right”。

当利用左连接时,职工的考核分数“Score”直接被接到了职工信息表的最后一列。返回的是所有职工的信息,分数表score中没有分数的员工也被返回了。

当进行右连接时,发现只有表data和表score中共有的职工才会被返回。

今天关于数据集分析库Pandas中数据库查询操作的学习笔记告一段落,个人认为在Python中利用Pandas库对数据进行增、删、改、查的操作比在Excel和数据库中输入函数或者敲一大段代码来得更简便和直观。

Python数据分析日记的内容过半,非常感谢大家的喜爱与支持,在剩下的日子里,我还是会努力努力再努力,交出更好的作业!如果您有什么好的意见和建议,欢迎交流指点哦,早安!

Ovaltine

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券