5.2 Series对象

来源:互联网 发布:mysql创建序列sql语句 编辑:程序博客网 时间:2024/06/08 11:32

5.2.1 Series介绍

Series是一维数组,与Numpy中的一维array类似。二者与Python基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,而Array和Series中则只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。
Series对象除了支持使用位置作为下标存取元素之外,还可以使用索引标签作为下标存取元素,这个功能与Python的字典(dictionary)对象类似。

5.2.2 创建Series对象

下面创建一个Series对象,示例代码:

import pandas as pds = pd.Series([1, 2, 3, 4, 5], index=["a", "b",  "c" , "d", "e"])print(s)

运行结果:

a    1b    2c    3d    4e    5dtype: int64

Series的字符串表现形式为:索引在左边,值在右边。以上代码是在创建Series的时候为值直接创建索引。当我们没有为数据指定索引时,Series会自动创建一个0到N-1(N为数据长度)的整数型索引。示例代码:

s2 = pd.Series([4, 7, -5, 3])print(s2)

运行结果:

0    41    72   -53    3dtype: int64

此外,我们也可以通过字典的形式来创建Series,示例代码:

sdata={'ohio':3500, 'Texas':7100, 'oregon':1600, 'utah':500}s3 = pd.Series(sdata)print(s3)

运行结果:

Texas     7100ohio      3500oregon    1600utah       500dtype: int64

5.2.3 Series对象的属性

每个Series对象包含两个属性,index和values。
index:它是从ndarray数组继承的Index索引对象,保存标签信息。若创建Series对象不指定index,将自动创建一个表示位置下标的索引。
values:保存元素值的ndarray数组,NumPy的函数都对此数组进行处理。
可以通过Series的values和index属性获取其数组的值和对应的属性。示例代码:

s4 = pd.Series([6, 8, 7, 9])print(s4.values)print(s4.index)

运行结果:

[6 8 7 9]RangeIndex(start=0, stop=4, step=1)

5.2.4 Series对象元素的存取

Series对象与NumPy的ndarray数组类似,可以通过下标获取元素值,此外Series下标运算同时支持位置和标签两种形式,示例代码:

print("位置下标 s[2]:",s[2])print("标签下标 s['d']:",s['d'])

运行结果:

位置下标 s[2]: 3标签下标 s['d']: 4

Series对象还支持位置切片和标签切片。位置切片遵循Python切片规则,包括起始位置,但不包括结束位置;但标签切片则同时包括起始标签和结束标签。示例代码:

print(s[1:3])print(s['b' : 'd'])

运行结果:

b    2c    3dtype: int64b    2c    3d    4dtype: int64

和NumPy的ndarray数组一样,还可以使用位置列表或位置数组存取元素,同样也可以使用标签列表和标签数组。示例代码;

print(s[[1, 3, 2]])print(s[['b', 'd', 'c']])

运行结果:

b    2d    4c    3dtype: int64b    2d    4c    3dtype: int64