Python Pandas - Series 系列

Series 系列是一个一维标记数组,能够保存任何类型的数据(整数、字符串、浮点数、python 对象等)。 轴标签统称为索引。


pandas.Series

可以使用以下构造函数创建 pandas Series −

pandas.Series( data, index, dtype, copy)

构造函数的参数如下 −

序号 参数 & 描述
1

data

数据采用各种形式,如 ndarray、列表、常量

2

index

索引值必须是唯一且可散列的,与数据的长度相同。 如果没有传递索引,则默认为 np.arrange(n)

3

dtype

dtype 用于数据类型。 如果没有,将推断数据类型

4

copy

复制数据。 默认 False

可以使用各种输入创建系列,例如 −

  • 数组
  • 字典
  • 标量值或常数

创建一个空系列

可以创建的基本系列是空系列。

示例

#import the pandas library and aliasing as pd
import pandas as pd
s = pd.Series()
print s

它的输出如下 −

Series([], dtype: float64)

从 ndarray 创建一个系列

如果 data 是一个 ndarray,则传递的索引必须具有相同的长度。 如果没有传递索引,则默认索引将是 range(n) 其中 n 是数组长度,即 [0,1,2,3…. range(len(array))-1]。

示例 1

#import the pandas library and aliasing as pd
import pandas as pd
import numpy as np
data = np.array(['a','b','c','d'])
s = pd.Series(data)
print s

它的输出如下 −

0   a
1   b
2   c
3   d
dtype: object

我们没有传递任何索引,所以默认情况下,它分配的索引范围是 0 到 len(data)-1,即 0 到 3。

示例 2

#import the pandas library and aliasing as pd
import pandas as pd
import numpy as np
data = np.array(['a','b','c','d'])
s = pd.Series(data,index=[100,101,102,103])
print s

它的输出如下 −

100  a
101  b
102  c
103  d
dtype: object

我们在这里传递了索引值。 现在我们可以在输出中看到自定义的索引值。


从字典创建一个系列

dict 可以作为输入传递,如果没有指定索引,则字典键按排序顺序获取以构造索引。 如果传入index,则将索引中标签对应的data中的值拉出来。

示例 1

#import the pandas library and aliasing as pd
import pandas as pd
import numpy as np
data = {'a' : 0., 'b' : 1., 'c' : 2.}
s = pd.Series(data)
print s

它的输出如下 −

a 0.0
b 1.0
c 2.0
dtype: float64

观察 − 字典键用于构建索引。

示例 2

#import the pandas library and aliasing as pd
import pandas as pd
import numpy as np
data = {'a' : 0., 'b' : 1., 'c' : 2.}
s = pd.Series(data,index=['b','c','d','a'])
print s

它的输出如下 −

b 1.0
c 2.0
d NaN
a 0.0
dtype: float64

观察 − 索引顺序保持不变,缺失的元素用 NaN 填充(不是 数字)。


从标量创建系列

如果数据是标量值,则必须提供索引。 该值将重复以匹配 index 的长度

#import the pandas library and aliasing as pd
import pandas as pd
import numpy as np
s = pd.Series(5, index=[0, 1, 2, 3])
print s

它的输出如下 −

0  5
1  5
2  5
3  5
dtype: int64

使用位置访问序列中的数据

可以像 ndarray 一样访问系列中的数据。

示例 1

检索第一个元素。 我们已经知道,数组的计数从零开始, 这意味着第一个元素存储在 zeroth 位置,依此类推。

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

#retrieve the first element
print s[0]

它的输出如下 −

1

示例 2

检索系列中的前三个元素。 如果在其前面插入:,则从该索引开始的所有项目都将被提取。 如果使用两个参数(它们之间有:),则两个索引之间的项目(不包括停止索引)

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

#retrieve the first three element
print s[:3]

它的输出如下 −

a  1
b  2
c  3
dtype: int64

示例 3

检索最后三个元素。

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

#retrieve the last three element
print s[-3:]

它的输出如下 −

c  3
d  4
e  5
dtype: int64

使用标签(索引)检索数据

系列就像一个固定大小的dict,你可以通过索引标签获取和设置值。

示例 1

使用索引标签值检索单个元素。

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

#retrieve a single element
print s['a']

它的输出如下 −

1

示例 2

使用索引标签值列表检索多个元素。

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

#retrieve multiple elements
print s[['a','c','d']]

它的输出如下 −

a  1
c  3
d  4
dtype: int64

示例 3

如果不包含标签,则会引发异常。

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

#retrieve multiple elements
print s['f']

它的输出如下 −

…
KeyError: 'f'