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 21 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
Feb 18 Python
使用PyInstaller将Python程序文件转换为可执行程序文件
Jul 08 Python
Pycharm学习教程(2) 代码风格
May 02 Python
十分钟利用Python制作属于你自己的个性logo
May 07 Python
flask中的wtforms使用方法
Jul 21 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
Sep 17 Python
python替换字符串中的子串图文步骤
Jun 19 Python
Django中使用haystack+whoosh实现搜索功能
Oct 08 Python
python调用函数、类和文件操作简单实例总结
Nov 29 Python
Python标准库shutil模块使用方法解析
Mar 10 Python
Python稀疏矩阵及参数保存代码实现
Apr 18 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生成便于打印的网页
2006/10/09 PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
2014/12/22 PHP
PHP中的浅复制与深复制的实例详解
2017/10/26 PHP
javascript据option的value值快速设定初始的selected选项
2007/08/13 Javascript
用jquery与css打造个性化的单选框和复选框
2010/10/20 Javascript
jQuery替换字符串(实例代码)
2013/11/13 Javascript
javascript函数作用域学习示例(js作用域)
2014/01/13 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
禁止iframe页面的所有js脚本如alert及弹出窗口等
2014/09/03 Javascript
jQuery下拉友情链接美化效果代码分享
2015/08/26 Javascript
node.js(express)中使用Jcrop进行图片剪切上传功能
2017/04/21 Javascript
通过源码分析Vue的双向数据绑定详解
2017/09/24 Javascript
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
通过vue写一个瀑布流插件代码实例
2019/09/07 Javascript
详解js location.href和window.open的几种用法和区别
2019/12/02 Javascript
微信小程序实现注册登录功能(表单校验、错误提示)
2019/12/10 Javascript
ant-design-vue 实现表格内部字段验证功能
2019/12/16 Javascript
es6中class类静态方法,静态属性,实例属性,实例方法的理解与应用分析
2020/02/15 Javascript
Vue组件化开发之通用型弹出框的实现
2020/02/28 Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
2020/08/05 Javascript
[49:40]2018DOTA2亚洲邀请赛小组赛 A组加赛 TNC vs Newbee
2018/04/03 DOTA
python解析xml模块封装代码
2014/02/07 Python
python中datetime模块中strftime/strptime函数的使用
2018/07/03 Python
Python partial函数原理及用法解析
2019/12/11 Python
Pytorch的mean和std调查实例
2020/01/02 Python
python词云库wordcloud的使用方法与实例详解
2020/02/17 Python
python爬虫使用正则爬取网站的实现
2020/08/03 Python
HTML5新标签兼容——> 的两种方法
2018/09/12 HTML / CSS
德国婴儿推车和儿童安全座椅商店:BABYSHOP
2016/09/01 全球购物
Ajxa常见问题都有哪些
2014/03/26 面试题
移动通信专业自荐信范文
2013/11/12 职场文书
历史博物馆观后感
2015/06/05 职场文书
高老头读书笔记
2015/06/30 职场文书
导游词之江苏同里古镇
2019/11/18 职场文书
HTML怎么设置下划线?html文字加下划线方法
2021/12/06 HTML / CSS
搭建zabbix监控以及邮件报警的超级详细教学
2022/07/15 Servers