Series
Series是一种类似于一维数组的对象,是由一维数据(各种Numpy数据类型)以及一组与之相关的数据标签(即索引)组成。
In [1]: from pandas import Series In [2]: import pandas as pd In [3]: ser = Series([1,2,3,-1,-2]) In [4]: ser
Out[4]:
0 1
1 2
2 3
3 -1
4 -2
dtype: int64
Series的字符串表现形式为:索引在左边,值在右边。由于没有为数据指定索引,会自动创建一个0到N-1(N为数据的长度)的整数型索引。可以通过Series的values和index属性获取其数组表示形式和索引对象。
In [8]: ser.values
Out[8]: array([ 1, 2, 3, -1, -2]) In [9]: ser.index
Out[9]: RangeIndex(start=0, stop=5, step=1)
也可以创建对各个数据点进行标记的索引。
In [10]: ser1 = Series([2,3,-4,-5],index = ['a','b','c','d']) In [11]: ser1
Out[11]:
a 2
b 3
c -4
d -5
dtype: int64 In [12]: ser1.index
Out[12]: Index([u'a', u'b', u'c', u'd'], dtype='object')
与普通的Numpy数组相比,可以通过索引的方式选取Series中的单个或一组值。
In [13]: ser1['a']
Out[13]: 2 In [14]: ser1['b'] = 5 In [15]: ser1
Out[15]:
a 2
b 5
c -4
d -5
dtype: int64
进行算数运算都会保留索引和值之间的连接。
In [19]: ser1
Out[19]:
a 2
b 5
c -4
d -5
dtype: int64 In [20]: ser1 * 2
Out[20]:
a 4
b 10
c -8
d -10
dtype: int64 In [21]: ser1[ser1 > 0]
Out[21]:
a 2
b 5
dtype: int64
还可以将Series看成是一个定长的有序字典,因为它是索引值到数据值的一个映射。
In [22]: 'a' in ser1
Out[22]: True In [23]: 'e' in ser1
Out[23]: False
如果数据被存放在一个Python字典中,可以直接通过这个字典来创建Series。
In [32]: data = {'Tom':100,'Alia':98,'Abel':80}
In [33]: datas = Series(data)
In [34]: datas
Out[34]:
Abel 80
Alia 98
Tom 100
dtype: int64
如果只传入一个字典,则结果Series中的索引就是源字典的键。
In [35]: states = ['Call','Tom','Alia','Abel'] In [36]: sim = Series(datas,index=states) In [37]: sim
Out[37]:
Call NaN
Tom 100.0
Alia 98.0
Abel 80.0
dtype: float64
在pandas中,NaN表示缺失值,pandas的isnull和notnull函数用于检测缺失数据。
In [38]: pd.isnull(sim)
Out[38]:
Call True
Tom False
Alia False
Abel False
dtype: bool In [39]: pd.notnull(sim)
Out[39]:
Call False
Tom True
Alia True
Abel True
dtype: bool
Series对象本身及其索引都有一个name属性,该属性跟pandas其他的关键功能关系非常密切。
In [42]: sim.name = 'student' In [43]: sim.index.name = 'class' In [44]: sim
Out[44]:
class
Call NaN
Tom 100.0
Alia 98.0
Abel 80.0
Name: student, dtype: float64
Series的更多相关文章
- 利用Python进行数据分析(8) pandas基础: Series和DataFrame的基本操作
一.reindex() 方法:重新索引 针对 Series 重新索引指的是根据index参数重新进行排序. 如果传入的索引值在数据里不存在,则不会报错,而是添加缺失值的新行. 不想用缺失值,可以用 ...
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍
一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...
- 数据分析(8):Series介绍
Series Series由一组数据及索引组成 索引 采用默认索引 data = pd.Series([4, 3, 2, 1]) 自定义索引 data = pd.Series([4, 3, 2, 1] ...
- POJ 3233Matrix Power Series
妈妈呀....这简直是目前死得最惨的一次. 贴题目: http://poj.org/problem?id=3233 Matrix Power Series Time Limit: 3000MS Mem ...
- highchart 添加新的series
code: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" c ...
- C# Chart控件,chart、Series、ChartArea曲线图绘制的重要属性
http://blog.sina.com.cn/s/blog_621e24e20101cp64.html 为避免耽误不喜欢这种曲线图效果的亲们的时间,先看一下小DEMO效果图: 先简单说一下,从图中可 ...
- pandas 学习(1): pandas 数据结构之Series
1. Series Series 是一个类数组的数据结构,同时带有标签(lable)或者说索引(index). 1.1 下边生成一个最简单的Series对象,因为没有给Series指定索引,所以此时会 ...
- (转)LSTM NEURAL NETWORK FOR TIME SERIES PREDICTION
LSTM NEURAL NETWORK FOR TIME SERIES PREDICTION Wed 21st Dec 2016 Neural Networks these days are th ...
- Time Series data 与 sequential data 的区别
It is important to note the distinction between time series and sequential data. In both cases, the ...
- survey on Time Series Analysis Lib
(1)I spent my 4th year Computing project on implementing time series forecasting for Java heap usage ...
随机推荐
- 《java入门第一季》之面向对象(重头戏多态)
接下来介绍java第三大特性--多态性 /* 多态:同一个对象(事物),在不同时刻体现出来的不同状态. 举例: 猫是猫,猫是动物. 水(液体,固体,气态). 多态的前提: A:要有继承关系. B:要有 ...
- 09_EGIT插件的安装,Eclipse中克隆(clone),commit,push,pull操作演示
1 下载EGIT,下载地址:http://www.eclipse.org/egit/download/ 最终的下载地址: http://www.eclipse.org/downloads/dow ...
- Material Design之CardView的使用
本文介绍CardView这个控件的使用,CardView继承至FrameLayout类,是support-v7包下的一个类,使用时必须引入cardview依赖包,可在下载的sdk文件夹中找到... 使 ...
- Unity3D学习笔记(五)C#与JavaScript组件访问的比较
由于之前用JavaScript用的比较多,因此总是想用以前的方法来访问组件,却屡遭失败,经过查阅资料发现,二者存在较大的不同. 下面以调用3D Text组件HurtValue为例,来比较二者的不同 J ...
- 【Matlab编程】matlab 画图
1. 不用截图工具就可以将图保存成图像格式,并且没有背景颜色:saveas(gcf ,'outputname','png/jpg'),第三项省略时默认为fig.m文件 2. 计算形如(-1)^2/ ...
- LIRe 源代码分析 2:基本接口(DocumentBuilder)
===================================================== LIRe源代码分析系列文章列表: LIRe 源代码分析 1:整体结构 LIRe 源代码分析 ...
- Struts2技术内幕 读书笔记一 框架的本质
本读书笔记系列,主要针对陆舟所著<<Struts2技术内幕 深入解析Strtus2架构设计与实现原理>>一书.笔记中所用的图片若无特殊说明,就都取自书中,特此声明. 什么是框架 ...
- IE中调试JS的一款很好的工具
附件是 IE中调试JS的一款很好用的工具,欢迎下载使用. 具体使用方法为: 1.先安装Companion.JS文件(install.exe). 2.安装Microsoft Script Debu ...
- java并发包分析之———AQS框架
一.什么是同步器 多线程并发的执行,之间通过某种 共享 状态来同步,只有当状态满足 xxxx 条件,才能触发线程执行 xxxx . 这个共同的语义可以称之为同步器.可以认为以上所有的锁机制都可以基 ...
- Python新手入门学习常见错误
当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂.这里列出了常见的的一些让你程序 crash 的运行时错误. 1)忘记在 if , elif , else , for , ...