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的更多相关文章

  1. 利用Python进行数据分析(8) pandas基础: Series和DataFrame的基本操作

    一.reindex() 方法:重新索引 针对 Series   重新索引指的是根据index参数重新进行排序. 如果传入的索引值在数据里不存在,则不会报错,而是添加缺失值的新行. 不想用缺失值,可以用 ...

  2. 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍

    一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...

  3. 数据分析(8):Series介绍

    Series Series由一组数据及索引组成 索引 采用默认索引 data = pd.Series([4, 3, 2, 1]) 自定义索引 data = pd.Series([4, 3, 2, 1] ...

  4. POJ 3233Matrix Power Series

    妈妈呀....这简直是目前死得最惨的一次. 贴题目: http://poj.org/problem?id=3233 Matrix Power Series Time Limit: 3000MS Mem ...

  5. highchart 添加新的series

    code: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" c ...

  6. C# Chart控件,chart、Series、ChartArea曲线图绘制的重要属性

    http://blog.sina.com.cn/s/blog_621e24e20101cp64.html 为避免耽误不喜欢这种曲线图效果的亲们的时间,先看一下小DEMO效果图: 先简单说一下,从图中可 ...

  7. pandas 学习(1): pandas 数据结构之Series

    1. Series Series 是一个类数组的数据结构,同时带有标签(lable)或者说索引(index). 1.1 下边生成一个最简单的Series对象,因为没有给Series指定索引,所以此时会 ...

  8. (转)LSTM NEURAL NETWORK FOR TIME SERIES PREDICTION

    LSTM NEURAL NETWORK FOR TIME SERIES PREDICTION Wed 21st Dec 2016   Neural Networks these days are th ...

  9. Time Series data 与 sequential data 的区别

    It is important to note the distinction between time series and sequential data. In both cases, the ...

  10. survey on Time Series Analysis Lib

    (1)I spent my 4th year Computing project on implementing time series forecasting for Java heap usage ...

随机推荐

  1. 解决unbuntu14.04上的eclipse自动退出的问题

    新安装的ubuntu14.04版,把以前12.04上正常使用的eclipse拷贝到14.04上后,启动eclipse后,输入代码时出现点"."提示符就会自动重启. jdk是1.7. ...

  2. TCP中的MSS解读(转)

    本文摘录自TCP中的MSS解读. MSS 是TCP选项中最经常出现,也是最早出现的选项.MSS选项占4byte.MSS是每一个TCP报文段中数据字段的最大长度,注意:只是数据部分的字段,不包括TCP的 ...

  3. Java进阶(十六)使用new Date()和System.currentTimeMillis()获取当前时间戳

    java使用new Date()和System.currentTimeMillis()获取当前时间戳 在开发过程中,通常很多人都习惯使用new Date()来获取当前时间,使用起来也比较方便,同时还可 ...

  4. LeetCode之“排序”:Largest Number

    题目链接 题目要求: Given a list of non negative integers, arrange them such that they form the largest numbe ...

  5. android 防止反编译的若干方法

    第一种方式:混淆策略 混淆策略是每个应用必须增加的一种防护策略,同时他不仅是为了防护,也是为了减小应用安装包的大小,所以他是每个应用发版之前必须要添加的一项功能,现在混淆策略一般有两种: 对代码的混淆 ...

  6. Linux系统下常用的快捷键

    快捷键 ctrl +  shift + '+'   将当前的终端放大 ctrl +  '-'           将当前的终端放小 ctrl +  l             清屏 ctrl +  u ...

  7. 关于web页面JApplet打印小票

    版权所有 做这个的例子太少,我把我做的示例亮出来 一.先说说需要的版本 1.我用的浏览器只有ie: 火狐只支持52版本以下,并且是java7.java8.chrome不支持 2.applet客户端打印 ...

  8. IT轮子系列(四)——使用Jquery+formdata对象 上传 文件

    前言 在MVC 中文件的上传,一般都采用控件: <h2>IT轮子四——文件上传</h2> <div> <input type="file" ...

  9. getElementById 用法的一个技巧

    假设实现把 TextBox1 的字符实时的拷贝到 TextBox2 中,代码如下: <Script language="Javascript">         fun ...

  10. JVM的运行原理以及JDK 7增加的新特性(一)

    虚拟机(Virtual Machine) JRE是由Java API和JVM组成的.JVM的主要作用是通过Class Loader来加载Java程序,并且按照Java API来执行加载的程序. 虚拟机 ...