Series

Posted 薛乔毓

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Series相关的知识,希望对你有一定的参考价值。

Series是一种类似于一维数组的对象,是由一维数据(各种Numpy数据类型)以及一组与之相关的数据标签(即索引)组成。

 1 In [1]: from pandas import Series
 2 
 3 In [2]: import pandas as pd
 4 
 5 In [3]: ser = Series([1,2,3,-1,-2])
 6 
 7 In [4]: ser
 8 Out[4]: 
 9 0    1
10 1    2
11 2    3
12 3   -1
13 4   -2
14 dtype: int64

Series的字符串表现形式为:索引在左边,值在右边。由于没有为数据指定索引,会自动创建一个0到N-1(N为数据的长度)的整数型索引。可以通过Series的values和index属性获取其数组表示形式和索引对象。

1 In [8]: ser.values
2 Out[8]: array([ 1,  2,  3, -1, -2])
3 
4 In [9]: ser.index
5 Out[9]: RangeIndex(start=0, stop=5, step=1)

也可以创建对各个数据点进行标记的索引。

 1 In [10]: ser1 = Series([2,3,-4,-5],index = [a,b,c,d])
 2 
 3 In [11]: ser1
 4 Out[11]: 
 5 a    2
 6 b    3
 7 c   -4
 8 d   -5
 9 dtype: int64
10 
11 In [12]: ser1.index
12 Out[12]: Index([ua, ub, uc, ud], 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

进行算数运算都会保留索引和值之间的连接。

 1 In [19]: ser1
 2 Out[19]: 
 3 a    2
 4 b    5
 5 c   -4
 6 d   -5
 7 dtype: int64
 8 
 9 In [20]: ser1 * 2
10 Out[20]: 
11 a     4
12 b    10
13 c    -8
14 d   -10
15 dtype: int64
16 
17 In [21]: ser1[ser1 > 0]
18 Out[21]: 
19 a    2
20 b    5
21 dtype: int64

还可以将Series看成是一个定长的有序字典,因为它是索引值到数据值的一个映射。

1 In [22]: a in ser1
2 Out[22]: True
3 
4 In [23]: e in ser1
5 Out[23]: False

 如果数据被存放在一个Python字典中,可以直接通过这个字典来创建Series。

 1 In [32]: data = {Tom:100,Alia:98,Abel:80}
 2 
 3 In [33]: datas = Series(data)
 4 
 5 In [34]: datas
 6 Out[34]: 
 7 Abel     80
 8 Alia     98
 9 Tom     100
10 dtype: int64

如果只传入一个字典,则结果Series中的索引就是源字典的键。

 1 In [35]: states = [Call,Tom,Alia,Abel]
 2 
 3 In [36]: sim = Series(datas,index=states)
 4 
 5 In [37]: sim
 6 Out[37]: 
 7 Call      NaN
 8 Tom     100.0
 9 Alia     98.0
10 Abel     80.0
11 dtype: float64

在pandas中,NaN表示缺失值,pandas的isnull和notnull函数用于检测缺失数据。

 1 In [38]: pd.isnull(sim)
 2 Out[38]: 
 3 Call     True
 4 Tom     False
 5 Alia    False
 6 Abel    False
 7 dtype: bool
 8 
 9 In [39]: pd.notnull(sim)
10 Out[39]: 
11 Call    False
12 Tom      True
13 Alia     True
14 Abel     True
15 dtype: bool

Series对象本身及其索引都有一个name属性,该属性跟pandas其他的关键功能关系非常密切。

 1 In [42]: sim.name = student
 2 
 3 In [43]: sim.index.name = class
 4 
 5 In [44]: sim
 6 Out[44]: 
 7 class
 8 Call      NaN
 9 Tom     100.0
10 Alia     98.0
11 Abel     80.0
12 Name: student, dtype: float64

 

以上是关于Series的主要内容,如果未能解决你的问题,请参考以下文章

如何从“ pandas.core.series.Series”中提取日期?

highcharts 未定义series增加series

将项目添加到 pandas.Series?

代写Matlab|代写Matlab |or Stata 编程代码代写Time Series Econometrics程序作业

Time Series / Date functionality

TypeError: to_append 应该是 Series 或 Series 的列表/元组,得到 DataFrame