彩票走势图

Python数据分析之pandas学习(二)

转帖|使用教程|编辑:龚雪|2017-05-08 10:45:02.000|阅读 277 次

概述:在SQL中常见的操作主要是增、删、改、查几个动作,那么pandas能否实现对数据的这几项操作呢?答案是Of Course!

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

我们接着上次分享给大家的,来继续下面的操作。

有关pandas模块的学习与应用主要介绍以下8个部分:

1、数据结构简介:DataFrame和Series

2、数据索引index

3、利用pandas查询数据

4、利用pandas的DataFrames进行统计分析

5、利用pandas实现SQL操作

6、利用pandas进行缺失值的处理

7、利用pandas实现Excel的数据透视表功能

8、多层索引的使用

我们在中已经介绍到了第四部分的描述性统计分析,我们接着往下讲pandas模块中的其他的知识点。

五、类似于SQL的操作

在SQL中常见的操作主要是增、删、改、查几个动作,那么pandas能否实现对数据的这几项操作呢?答案是Of Course!

增:添加新行或增加新列

1.In [99]: dic = {'Name':['LiuShunxiang','Zhangshan'], 
2....: 'Sex':['M','F'],'Age':[27,23], 
3....: 'Height':[165.7,167.2],'Weight':[61,63]} 
4.
5.In [100]: student2 = pd.DataFrame(dic) 
6.
7.In [101]: student2 
8.Out[101]: 
9.Age Height Name Sex Weight 
10.0 27 165.7 LiuShunxiang M 61 
11.1 23 167.2 Zhangshan F 63 

现在将student2中的数据新增到student中,可以通过concat函数实现:

注意到了吗?在数据库中union必须要求两张表的列顺序一致,而这里concat函数可以自动对齐两个数据框的变量!

新增列的话,其实在pandas中就更简单了,例如在student2中新增一列学生成绩:

对于新增的列没有赋值,就会出现空NaN的形式。

删:删除表、观测行或变量列

删除数据框student2,通过del命令实现,该命令可以删除Python的所有对象。

删除指定的行

原数据中的第1,2,4,7行的数据已经被删除了。

根据布尔索引删除行数据,其实这个删除就是保留删除条件的反面数据,例如删除所有14岁以下的学生:

删除指定的列

我们发现,不论是删除行还是删除列,都可以通过drop方法实现,只需要设定好删除的轴即可,即调整drop方法中的axis参数。默认该参数为0,表示删除行观测,如果需要删除列变量,则需设置为1。

改:修改原始记录的值

如果发现表中的某些数据错误了,如何更改原来的值呢?我们试试结合布尔索引和赋值的方法:

例如发现student3中姓名为Liushunxiang的学生身高错了,应该是173,如何改呢?

这样就可以把原来的身高修改为现在的170了。

看,关于索引的操作非常灵活、方便吧,就这样轻松搞定数据的更改。

查:有关数据查询部分,上面已经介绍过,下面重点讲讲聚合、排序和多表连接操作。

聚合:pandas模块中可以通过groupby()函数实现数据的聚合操作

根据性别分组,计算各组别中学生身高和体重的平均值:

如果不对原始数据作限制的话,聚合函数会自动选择数值型数据进行聚合计算。如果不想对年龄计算平均值的话,就需要剔除改变量:

groupby还可以使用多个分组变量,例如根本年龄和性别分组,计算身高与体重的平均值:

当然,还可以对每个分组计算多个统计量:

是不是很简单,只需一句就能完成SQL中的SELECT…FROM…GROUP BY…功能,何乐而不为呢?

排序:

排序在日常的统计分析中还是比较常见的操作,我们可以使用order、sort_index和sort_values实现序列和数据框的排序工作:

我们再试试降序排序的设置:

上面两个结果其实都是按值排序,并且结果中都给出了警告信息,即建议使用sort_values()函数进行按值排序。

在数据框中一般都是按值排序,例如:

多表连接:

多表之间的连接也是非常常见的数据库操作,连接分内连接和外连接,在数据库语言中通过join关键字实现,pandas我比较建议使用merger函数实现数据的各种连接操作。 如下是构造一张学生的成绩表:

现在想把学生表student与学生成绩表score做一个关联,该如何操作呢?

注意,默认情况下,merge函数实现的是两个表之间的内连接,即返回两张表中共同部分的数据。可以通过how参数设置连接的方式,left为左连接;right为右连接;outer为外连接。

左连接实现的是保留student表中的所有信息,同时将score表的信息与之配对,能配多少配多少,对于没有配对上的Name,将会显示成绩为NaN。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP