Pandas序列


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

pandas.Series

Pandas序列可以使用以下构造函数创建 -

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

构造函数的参数如下所示 -

S.No 参数和说明
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创建一个序列

如果数据是ndarray,则传递的索引必须具有相同的长度。如果没有索引被传递,那么默认情况下,索引将是 range(n) ,其中 n 是数组长度,即[0,1,2,3 ...。 范围(LEN(阵列)) - 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

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

从字典创建一个序列

一个 字典 可以作为输入传递,如果没有指定索引,那么字典键将按照排序的顺序进行构建索引。如果 索引 被传递, 索引 中的标签对应的数据值将被取出。

例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(不是数字)填充。

从标量创建一个序列

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

#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

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

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

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

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

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

A序列就像一个固定大小的 字典 ,您可以通过索引标签获取和设置值。

例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'