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中的urllib2模块
Nov 13 Python
python3.x实现base64加密和解密
Mar 28 Python
python实现从本地摄像头和网络摄像头截取图片功能
Jul 11 Python
python实现windows倒计时锁屏功能
Jul 30 Python
Django发送邮件和itsdangerous模块的配合使用解析
Aug 10 Python
TensorFlow——Checkpoint为模型添加检查点的实例
Jan 21 Python
Python进阶之迭代器与迭代器切片教程
Jan 29 Python
python requests.get带header
May 05 Python
Python3实现建造者模式的示例代码
Jun 28 Python
Keras loss函数剖析
Jul 06 Python
Python单元测试及unittest框架用法实例解析
Jul 09 Python
Django数据统计功能count()的使用
Nov 30 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
PHP中FTP相关函数小结
2016/07/15 PHP
php使用crypt()函数进行加密
2017/06/08 PHP
thinkphp5.1框架模板赋值与变量输出示例
2020/05/25 PHP
jQuery 数据缓存data(name, value)详解及实现
2010/01/04 Javascript
JQuery扩展插件Validate 2通过参数设置验证规则
2011/09/05 Javascript
jQuery获取注册信息并提示实现代码
2013/04/21 Javascript
js判断FCKeditor内容是否为空的两种形式
2013/05/14 Javascript
js实现文本框中焦点在最后位置
2014/03/04 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
2014/05/04 Javascript
JavaScript中使用Math.PI圆周率属性的方法
2015/06/14 Javascript
javascript引用类型之时间Date和数组Array
2015/08/27 Javascript
JS实现的简洁纵向滑动菜单(滑动门)效果
2015/10/19 Javascript
js前端解决跨域问题的8种方案(最新最全)
2016/11/18 Javascript
微信小程序实现文字跑马灯效果
2020/05/26 Javascript
vue升级之路之vue-router的使用教程
2018/08/14 Javascript
vue.js 子组件无法获取父组件store值的解决方式
2019/11/08 Javascript
微信小程序实现滚动加载更多的代码
2019/12/06 Javascript
不刷新网页就能链接新的js文件方法总结
2020/03/01 Javascript
Javascript实现单选框效果
2020/12/09 Javascript
[59:32]Liquid vs Fnatic 2019国际邀请赛淘汰赛败者组BO1 8.20.mp4
2020/07/19 DOTA
[02:13] 完美世界DOTA2联赛PWL DAY5集锦
2020/11/03 DOTA
Django1.7+python 2.78+pycharm配置mysql数据库教程
2014/11/18 Python
Python中多线程及程序锁浅析
2015/01/21 Python
django manage.py扩展自定义命令方法
2018/05/27 Python
python numpy 部分排序 寻找最大的前几个数的方法
2018/06/27 Python
Python构建图像分类识别器的方法
2019/01/12 Python
python 30行代码实现蚂蚁森林自动偷能量
2021/02/08 Python
CSS3 渐变(Gradients)之CSS3 径向渐变
2016/07/08 HTML / CSS
计算机专业个人简短的自我评价
2013/10/23 职场文书
小班上学期评语
2014/05/05 职场文书
红头文件任命书范本
2014/06/05 职场文书
学生顶撞老师的检讨书
2014/09/17 职场文书
护士个人年终总结
2015/02/13 职场文书
怀孕辞职信怎么写
2015/02/28 职场文书
超市主管竞聘书
2015/09/15 职场文书
同学联谊会邀请函
2019/06/24 职场文书