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中类型关系和继承关系实例详解
May 25 Python
Python程序中用csv模块来操作csv文件的基本使用教程
Mar 03 Python
python @property的用法及含义全面解析
Feb 01 Python
Python绘制频率分布直方图的示例
Jul 08 Python
python文字转语音实现过程解析
Nov 12 Python
简单了解python元组tuple相关原理
Dec 02 Python
Python通过VGG16模型实现图像风格转换操作详解
Jan 16 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
Feb 07 Python
Python爬虫:Request Payload和Form Data的简单区别说明
Apr 30 Python
python3.6使用SMTP协议发送邮件
May 20 Python
python实现登录与注册系统
Nov 30 Python
Python万能模板案例之matplotlib绘制甘特图
Apr 13 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
如何在WIN2K下安装PHP4.04
2006/10/09 PHP
Windows 下的 PHP-PEAR 安装方法
2010/11/20 PHP
使用php实现快钱支付功能(涉及到接口)
2013/07/01 PHP
php用正则表达式匹配中文实例详解
2013/11/06 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
2015/04/15 PHP
PHP闭包函数传参及使用外部变量的方法
2016/03/15 PHP
Zend Framework连接Mysql数据库实例分析
2016/03/19 PHP
php导出csv文件,可导出前导0实例代码
2016/11/16 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
2018/05/23 PHP
PHP 二维array转换json的实例讲解
2018/08/21 PHP
Jquery倒数计时按钮setTimeout的实例代码
2013/07/04 Javascript
jQuery菜单插件superfish使用指南
2015/04/21 Javascript
javascript弹性运动效果简单实现方法
2016/01/08 Javascript
jQuery实现模拟flash头像裁切上传功能示例
2016/12/11 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
2017/01/19 Javascript
基于React实现表单数据的添加和删除详解
2017/03/14 Javascript
详解vue-cli构建项目反向代理配置
2017/09/07 Javascript
Nodejs实现文件上传的示例代码
2017/09/26 NodeJs
vue+element-ui实现表格编辑的三种实现方式
2018/10/31 Javascript
React手稿之 React-Saga的详解
2018/11/12 Javascript
pm2发布node配置文件ecosystem.json详解
2019/05/15 Javascript
Python内置函数的用法实例教程
2014/09/08 Python
django项目运行因中文而乱码报错的几种情况解决
2017/11/07 Python
pandas的object对象转时间对象的方法
2018/04/11 Python
python pandas库中DataFrame对行和列的操作实例讲解
2018/06/09 Python
使用Python制作自动推送微信消息提醒的备忘录功能
2018/09/06 Python
Python基础学习之类与实例基本用法与注意事项详解
2019/06/17 Python
numpy:np.newaxis 实现将行向量转换成列向量
2019/11/30 Python
通过代码简单了解django model序列化作用
2020/11/12 Python
html5 Web SQL Database 之事务处理函数transaction与executeSQL解析
2013/11/07 HTML / CSS
陈安之励志演讲稿
2014/08/21 职场文书
助学贷款贫困证明
2014/09/23 职场文书
离婚协议书范本
2015/01/26 职场文书
公司年夜饭通知
2015/04/25 职场文书
法制工作总结2015
2015/07/23 职场文书
微信小程序 WeUI扩展组件库的入门教程
2022/04/21 Javascript