pandas 数据结构之Series的使用方法


Posted in Python onJune 21, 2019

1. Series

Series 是一个类数组的数据结构,同时带有标签(lable)或者说索引(index)。

1.1 下边生成一个最简单的Series对象,因为没有给Series指定索引,所以此时会使用默认索引(从0到N-1)。

# 引入Series和DataFrame
In [16]: from pandas import Series,DataFrame
In [17]: import pandas as pd

In [18]: ser1 = Series([1,2,3,4])

In [19]: ser1
Out[19]: 
0  1
1  2
2  3
3  4
dtype: int64

1.2 当要生成一个指定索引的Series 时候,可以这样:

# 给index指定一个list
In [23]: ser2 = Series(range(4),index = ["a","b","c","d"])

In [24]: ser2
Out[24]: 
a  0
b  1
c  2
d  3
dtype: int64

1.3 也可以通过字典来创建Series对象

In [45]: sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}

In [46]: ser3 = Series(sdata)
# 可以发现,用字典创建的Series是按index有序的
In [47]: ser3
Out[47]: 
Ohio   35000
Oregon  16000
Texas   71000
Utah    5000
dtype: int64

在用字典生成Series的时候,也可以指定索引,当索引中值对应的字典中的值不存在的时候,则此索引的值标记为Missing,NA,并且可以通过函数(pandas.isnull,pandas.notnull)来确定哪些索引对应的值是没有的。 

In [48]: states = ['California', 'Ohio', 'Oregon', 'Texas']

In [49]: ser3 = Series(sdata,index = states)

In [50]: ser3
Out[50]: 
California    NaN
Ohio     35000.0
Oregon    16000.0
Texas     71000.0
dtype: float64
# 判断哪些值为空
In [51]: pd.isnull(ser3)
Out[51]: 
California   True
Ohio     False
Oregon    False
Texas     False
dtype: bool

In [52]: pd.notnull(ser3)
Out[52]: 
California  False
Ohio      True
Oregon     True
Texas     True
dtype: bool

1.4 访问Series中的元素和索引:

# 访问索引为"a"的元素
In [25]: ser2["a"]
Out[25]: 0
# 访问索引为"a","c"的元素
In [26]: ser2[["a","c"]]
Out[26]: 
a  0
c  2
dtype: int64
# 获取所有的值
In [27]: ser2.values
Out[27]: array([0, 1, 2, 3])
# 获取所有的索引
In [28]: ser2.index
Out[28]: Index([u'a', u'b', u'c', u'd'], dtype='object')

1.5 简单运算

在pandas的Series中,会保留NumPy的数组操作(用布尔数组过滤数据,标量乘法,以及使用数学函数),并同时保持引用的使用

In [34]: ser2[ser2 > 2]
Out[34]: 
a  64
d   3
dtype: int64

In [35]: ser2 * 2
Out[35]: 
a  128
b   2
c   4
d   6
dtype: int64

In [36]: np.exp(ser2)
Out[36]: 
a  6.235149e+27
b  2.718282e+00
c  7.389056e+00
d  2.008554e+01
dtype: float64

1.6 Series的自动对齐

Series的一个重要功能就是自动对齐(不明觉厉),看看例子就明白了。 差不多就是不同Series对象运算的时候根据其索引进行匹配计算。

# ser3 的内容
In [60]: ser3
Out[60]: 
Ohio   35000
Oregon  16000
Texas   71000
Utah    5000
dtype: int64
# ser4 的内容
In [61]: ser4
Out[61]: 
California    NaN
Ohio     35000.0
Oregon    16000.0
Texas     71000.0
dtype: float64
# 相同索引值的元素相加
In [62]: ser3 + ser4
Out[62]: 
California     NaN
Ohio      70000.0
Oregon     32000.0
Texas     142000.0
Utah        NaN
dtype: float64

1.7 命名

Series对象本身,以及索引都有一个 name 属性

In [64]: ser4.index.name = "state"

In [65]: ser4.name = "population"

In [66]: ser4
Out[66]: 
state
California    NaN
Ohio     35000.0
Oregon    16000.0
Texas     71000.0
Name: population, dtype: float64

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python的三目运算符和not in运算符使用示例
Mar 03 Python
Python使用MySQLdb for Python操作数据库教程
Oct 11 Python
python提取内容关键词的方法
Mar 16 Python
Python使用Flask框架同时上传多个文件的方法
Mar 21 Python
关于Python 3中print函数的换行详解
Aug 08 Python
Python eval的常见错误封装及利用原理详解
Mar 26 Python
Python:合并两个numpy矩阵的实现
Dec 02 Python
使用python客户端访问impala的操作方式
Mar 28 Python
pygame实现弹球游戏
Apr 14 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
Jul 21 Python
什么是Python包的循环导入
Sep 08 Python
pd.DataFrame中的几种索引变换的实现
Jun 16 Python
解决pyecharts在jupyter notebook中使用报错问题
Apr 23 #Python
用scikit-learn和pandas学习线性回归的方法
Jun 21 #Python
在pyqt5中QLineEdit里面的内容回车发送的实例
Jun 21 #Python
十分钟搞定pandas(入门教程)
Jun 21 #Python
pyqt5 QProgressBar清空进度条的实例
Jun 21 #Python
python实现Dijkstra算法的最短路径问题
Jun 21 #Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
Jun 21 #Python
You might like
Laravel框架生命周期与原理分析
2018/06/12 PHP
IE8 引入跨站数据获取功能说明
2008/07/22 Javascript
让IE6支持min-width和max-width的方法
2010/06/25 Javascript
addEventListener和attachEvent二者绑定的执行函数中的this不相同
2012/12/09 Javascript
Extjs中TabPane如何嵌套在其他网页中实现思路及代码
2013/01/27 Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
2013/07/25 Javascript
javascript中style.left和offsetLeft的用法说明
2014/03/07 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
2014/04/29 Javascript
超级简单实现JavaScript MVC 样式框架
2015/03/24 Javascript
javascript去除空格方法小结
2015/05/21 Javascript
JS中Eval解析JSON字符串的一个小问题
2016/02/21 Javascript
Javascript删除指定元素节点的方法
2016/06/21 Javascript
Nodejs下DNS缓存问题浅析
2016/11/16 NodeJs
Angular.JS实现无限级的联动菜单(使用demo)
2017/02/08 Javascript
angularjs的select使用及默认选中设置
2017/04/08 Javascript
SeaJS中use函数用法实例分析
2017/10/10 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
2018/12/13 Javascript
详解vue为什么要求组件模板只能有一个根元素
2019/07/22 Javascript
小程序两种滚动公告栏的实现方法
2019/09/17 Javascript
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
python根据文章标题内容自动生成摘要的实例
2019/02/21 Python
简单分析python的类变量、实例变量
2019/08/23 Python
python pycharm的安装及其使用
2019/10/11 Python
如何使用Pytorch搭建模型
2020/10/26 Python
Python运算符+与+=的方法实例
2021/02/18 Python
巴西独家产品和现场演示购物网站:Shoptime
2019/07/11 全球购物
金蝶的一道SQL笔试题
2012/12/18 面试题
法学专业本科生自荐信范文
2013/12/17 职场文书
小学生关于梦想的演讲稿
2014/08/22 职场文书
2014年接待工作总结
2014/11/26 职场文书
消防宣传语大全
2015/07/13 职场文书
利用Python判断整数是否是回文数的3种方法总结
2021/07/07 Python
Python 中的Sympy详细使用
2021/08/07 Python
Golang并发操作中常见的读写锁详析
2021/08/30 Golang
python turtle绘图命令及案例
2021/11/23 Python
Spring Boot配合PageHelper优化大表查询数据分页
2022/04/20 Java/Android