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计算文本文件行数的方法
Jul 06 Python
通过数据库对Django进行删除字段和删除模型的操作
Jul 21 Python
学习python之编写简单简单连接数据库并执行查询操作
Feb 27 Python
简单学习Python多进程Multiprocessing
Aug 29 Python
Python使用Windows API创建窗口示例【基于win32gui模块】
May 09 Python
django 多数据库配置教程
May 30 Python
python中join()方法介绍
Oct 11 Python
pytorch 调整某一维度数据顺序的方法
Dec 08 Python
Python concurrent.futures模块使用实例
Dec 24 Python
Python csv文件记录流程代码解析
Jul 16 Python
python中random.randint和random.randrange的区别详解
Sep 20 Python
详解基于python的图像Gabor变换及特征提取
Oct 26 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
基于PHP5魔术常量与魔术方法的详解
2013/06/13 PHP
怎么在Windows系统中搭建php环境
2013/08/31 PHP
php中session定期自动清理的方法
2015/11/12 PHP
Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
2016/03/21 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
2016/12/12 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
2018/06/01 PHP
javascript 支持链式调用的异步调用框架Async.Operation
2009/08/04 Javascript
基于jQuery的ajax功能实现web service的json转化
2009/08/29 Javascript
使用JQuery进行跨域请求
2010/01/25 Javascript
JavaScript接口实现代码 (Interfaces In JavaScript)
2010/06/11 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
2015/03/01 Javascript
JavaScript实现给按钮加上双重动作的方法
2015/08/14 Javascript
ajax实现加载页面、删除、查看详细信息 bootstrap美化页面!
2017/03/14 Javascript
BootStrap+Mybatis框架下实现表单提交数据重复验证
2017/03/23 Javascript
详解AngularJS 路由 resolve用法
2017/04/24 Javascript
关于vue-resource报错450的解决方案
2017/07/24 Javascript
js图片上传的封装代码
2017/08/01 Javascript
React根据宽度自适应高度的示例代码
2017/10/11 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
JavaScript插入排序算法原理与实现方法示例
2018/08/06 Javascript
vue-router启用history模式下的开发及非根目录部署方法
2018/12/23 Javascript
配置eslint规范项目代码风格
2019/03/11 Javascript
JS使用new操作符创建对象的方法分析
2019/05/30 Javascript
利用Python学习RabbitMQ消息队列
2015/11/30 Python
numpy自动生成数组详解
2017/12/15 Python
使用python脚本实现查询火车票工具
2018/07/19 Python
Python的条件表达式和lambda表达式实例
2019/01/31 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
如何理解python中数字列表
2020/05/29 Python
Python生成器next方法和send方法区别详解
2020/05/30 Python
Django配置Bootstrap, js实现过程详解
2020/10/13 Python
阿联酋团购网站:Groupon阿联酋
2016/10/14 全球购物
华为的Java面试题
2014/03/07 面试题
员工手册董事长致辞
2015/07/29 职场文书
多表查询、事务、DCL
2021/04/05 MySQL