博客
关于我
Pandas之Series
阅读量:228 次
发布时间:2019-02-28

本文共 1721 字,大约阅读时间需要 5 分钟。

这个东西相当烦人,之前一直没重视,后来他在我神经网络的学习中给我制造了很大的麻烦,所以这里特别记一下,引用的别人的博客,毕竟这也不是什么难的重点,只是一些基础知识的总结。

前面用了5篇文章简单介绍了Python非常重要的库:Numpy,Numpy用来进行数值计算,是数据分析、机器学习的基础库。从本文开始为大家介绍Python另外一个非常重要的库:Pandas,Pandas是数据分析的常用工具,也是基于Numpy的。之前在介绍Numpy时反复强调Numpy的核心概念是Ndarray,在Pandas中同样也有类似的核心概念:Series和DataFrame,由于Ndarray要求元素保持一样的数据类型,因此Numpy通常用来处理单一类型的数据,而Series可以保存不同的数据类型,因此Pandas在处理表格和混杂类型的数据方面有着广泛的应用。

Series对象的创建

Series是Pandas中的一维数据结构,类似于Python中的列表和Numpy中的Ndarray,不同之处在于:Series是一维的,能存储不同类型的数据,有一组索引与元素对应。下图的代码是Series的一个简单示例。

图1 Series简单示例

与Numpy类似,Pandas的引入也使用语句“import pandas as pd”,pd作为Pandas的别名是通用写法;第3行创建了一个名为s1的series对象,本例中传入的是一个包含4个整型数值的列表,传入元组、字典都是可以的,如果传入字典,字典的键key和值value将自动转换成series对象的索引和元素;由s1的打印结果可知:series对象不仅包含数值,还包含一组索引,由于在创建series对象时没有指定索引,因此会默认使用非负整数当做索引。

在创建series对象时我们可以手动设置索引,如下图:

图2 手动设置series索引

第3行我们创建了series对象s2,包含四个字符串,索引依次设置为'a','b','c','d';打印的最后一行,s2元素类型dtype为object,注意Pandas中整型为int64,浮点型为float64,字符串、布尔型等其他数据类型都为object。

在series对象中,索引与元素之间是一种映射关系,元素在series对象中的有序存储是通过索引实现的,当传入字典创建series对象,可以通过指定索引的方式对series对象中的元素进行排序和过滤。

图3 字典和索引创建series对象

对比字典scores和列表names我们发现:scores中的键顺序与names中元素顺序不一致,scores中没有的键为“tracy”的数据,names中没有“tom”;第4行创建series对象s3时以索引(列表names)为依据,names中没有的元素(tom)将被过滤掉,scores中没有tracy的分数,将会被NaN代替;从最后的打印结果可以看出:s3是以索引names排序的,由于NaN是浮点型,因此s3中的数据类型自动转换成float64。

Series元素的访问

Series对象的元素也可以像列表和ndarray一样通过[index]的方式访问,需要注意的是:如果在创建series对象时指定了整型之外的其他类型的索引,默认的整数索引仍然可用。如下图的代码所示:使用s2[1]和s2['b']得到的值是完全相同的。当然也可以使用 s2[1] = 'banana' 或 s2['b'] = 'banana' 语句在原地对series对象s2进行修改。

图4 series元素的访问

除了元素的值之外,索引也可以修改,下图中的示例将s2的索引由字符串型改为整型。

图5 series对象修改索引

第5行将s2的索引修改为1到4的整数列表,修改后可以不用字符串索引访问元素,新的整数索引[1, 2, 3, 4]将覆盖默认的整数索引[0, 1, 2, 3],此时第6行s2[1]将得到s2中的第一个元素“alpha”,而第7行s2[0]将报出索引错误(IndexError);与修改元素一样,对索引的修改都是在原地进行,不会在内存中进行复制操作。

转载地址:http://xgoi.baihongyu.com/

你可能感兴趣的文章
nginx转发端口时与导致websocket不生效
查看>>
Nginx运维与实战(二)-Https配置
查看>>
Nginx部署_mysql代理_redis代理_phoenix代理_xxljob代理_websocket代理_Nacos代理_内网穿透代理_多系统转发---记录021_大数据工作笔记0181
查看>>
Nginx配置HTTPS服务
查看>>
Nginx配置Https证书
查看>>
Nginx配置http跳转https
查看>>
Nginx配置ssl实现https
查看>>
Nginx配置TCP代理指南
查看>>
NGINX配置TCP连接双向SSL
查看>>
Nginx配置——不记录指定文件类型日志
查看>>
nginx配置一、二级域名、多域名对应(api接口、前端网站、后台管理网站)
查看>>
nginx配置中的服务器名称
查看>>
Nginx配置代理解决本地html进行ajax请求接口跨域问题
查看>>
nginx配置全解
查看>>
Nginx配置参数中文说明
查看>>
Nginx配置后台网关映射路径
查看>>
nginx配置域名和ip同时访问、开放多端口
查看>>
Nginx配置多个不同端口服务共用80端口
查看>>
Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
查看>>
Nginx配置如何一键生成
查看>>