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的爬虫程序编写框架Scrapy入门学习教程
Jul 02 Python
初探TensorFLow从文件读取图片的四种方式
Feb 06 Python
Python3使用turtle绘制超立方体图形示例
Jun 19 Python
win7 x64系统中安装Scrapy的方法
Nov 18 Python
Python----数据预处理代码实例
Mar 20 Python
python调用摄像头拍摄数据集
Jun 01 Python
Python+OpenCV实现旋转文本校正方式
Jan 09 Python
150行Python代码实现带界面的数独游戏
Apr 04 Python
Python confluent kafka客户端配置kerberos认证流程详解
Oct 12 Python
关于PySnooper 永远不要使用print进行调试的问题
Mar 04 Python
Python办公自动化之Excel(中)
May 24 Python
Python实现简单得递归下降Parser
May 02 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
详解:――如何将图片储存在数据库里
2006/12/05 PHP
php日期转时间戳,指定日期转换成时间戳
2012/07/17 PHP
php使用curl存储cookie的示例
2014/03/31 PHP
通过curl模拟post和get方式提交的表单类
2014/04/23 PHP
THINKPHP内容分页代码分享
2015/01/14 PHP
PHP实现的数组和XML文件相互转换功能示例
2018/03/15 PHP
js本身的局限性 别让javascript做太多事
2010/03/23 Javascript
javascript页面动态显示时间变化示例代码
2013/12/18 Javascript
JQuery打造省市下拉框联动效果
2014/05/18 Javascript
实例分析js和C#中使用正则表达式匹配a标签
2014/11/26 Javascript
javascript模拟评分控件实现方法
2015/05/13 Javascript
jquery实现图片上传前本地预览功能
2016/05/10 Javascript
AngularJS指令详解及示例代码
2016/08/16 Javascript
AngularJS控制器详解及示例代码
2016/08/16 Javascript
Angular2管道Pipe及自定义管道格式数据用法实例分析
2017/11/29 Javascript
使用vue的transition完成滑动过渡的示例代码
2018/06/25 Javascript
node.js中Buffer缓冲器的原理与使用方法分析
2019/11/23 Javascript
es6 super关键字的理解与应用实例分析
2020/02/15 Javascript
js实现九宫格抽奖
2020/03/19 Javascript
JavaScript大数相加相乘的实现方法实例
2020/10/18 Javascript
Python基于smtplib实现异步发送邮件服务
2015/05/28 Python
Python常见内置高效率函数用法示例
2018/07/31 Python
python的scipy实现插值的示例代码
2019/11/12 Python
Qoo10台湾站:亚洲领先的在线市场
2018/05/15 全球购物
大学新生欢迎词
2014/01/10 职场文书
煤矿安全生产责任书
2014/04/15 职场文书
保护环境演讲稿
2014/05/10 职场文书
租房协议书范例
2014/10/14 职场文书
2014年个人工作总结范文
2014/11/07 职场文书
终止解除劳动合同证明书
2015/06/17 职场文书
增值税发票丢失证明
2015/06/19 职场文书
疾病证明书
2015/06/19 职场文书
离婚财产分割协议书
2015/08/11 职场文书
2016入党积极分子考察评语
2015/12/01 职场文书
能让Python提速超40倍的神器Cython详解
2021/06/24 Python
Python语言内置数据类型
2022/02/24 Python