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 相关文章推荐
在Django中创建第一个静态视图
Jul 15 Python
不可错过的十本Python好书
Jul 06 Python
Python 多线程Threading初学教程
Aug 22 Python
Python最小二乘法矩阵
Jan 02 Python
django admin组件使用方法详解
Jul 19 Python
基于python判断目录或者文件代码实例
Nov 29 Python
浅谈Python中的继承
Jun 19 Python
详解Selenium-webdriver绕开反爬虫机制的4种方法
Oct 28 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
Nov 20 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
Jan 27 Python
python读取excel数据并且画图的实现示例
Feb 08 Python
Python 批量下载阴阳师网站壁纸
May 19 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
ftp类(example.php)
2006/10/09 PHP
php5.2时间相差8小时
2007/01/15 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
2013/01/06 PHP
PHP的PSR规范中文版
2013/09/28 PHP
linux下使用crontab实现定时PHP计划任务失败的原因分析
2014/07/05 PHP
ThinkPHP表单自动提交验证实例教程
2014/07/18 PHP
PHP通过插入mysql数据来实现多机互锁实例
2014/11/05 PHP
php获取四位字母和数字的随机数的实现方法
2015/01/09 PHP
PHP页面跳转操作实例分析(header方法)
2016/09/28 PHP
ecshop添加菜单及权限分配问题
2017/11/21 PHP
jQuery 使用手册(二)
2009/09/23 Javascript
event.srcElement 用法笔记e.target
2009/12/18 Javascript
Javascript 面向对象(一)(共有方法,私有方法,特权方法)
2012/05/23 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
原生js实现shift/ctrl/alt按键的获取
2013/04/08 Javascript
图片放大镜jquery.jqzoom.js使用实例附放大镜图标
2014/06/19 Javascript
Javascript数组操作函数总结
2015/02/05 Javascript
纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示
2015/09/12 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
详解能在多种前端框架下使用的表格控件
2017/01/11 Javascript
JQueryEasyUI框架下的combobox的取值和绑定的方法
2017/01/22 Javascript
微信小程序页面滑动屏幕加载数据效果
2020/11/16 Javascript
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
2018/10/12 Javascript
JavaScript实现简单随机点名器
2019/11/21 Javascript
js实现无缝轮播图效果
2020/03/09 Javascript
Vue组件模板及组件互相引用代码实例
2020/03/11 Javascript
[01:12]DOTA2次级职业联赛 - Newbee.Y 战队宣传片
2014/12/01 DOTA
详解详解Python中writelines()方法的使用
2015/05/25 Python
详解Python中的元组与逻辑运算符
2015/10/13 Python
python复制文件到指定目录的实例
2018/04/27 Python
django的登录注册系统的示例代码
2018/05/14 Python
pyinstaller将含有多个py文件的python程序做成exe
2020/04/29 Python
捷克时尚网上商店:OTTO
2018/03/15 全球购物
建筑工地质量标语
2014/06/12 职场文书
大学体育课感想
2015/08/10 职场文书