Python Pandas 系列

Python Pandas 系列

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

pandas.Series

可以使用下面的构造函数创建pandas序列 −

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

构造函数的参数如下:

序号 参数和描述
1 数据 数据有多种形式,如ndarray, list, constants等。
2 index 索引值必须是唯一的和可散列的,与数据长度相同。如果没有传递索引,默认为 np.arrange(n )。
3 dtype dtype是指数据类型。如果没有,数据类型将被推断出来。
4 copy 拷贝数据。默认为假

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

  • 矩阵
  • 字母
  • 标量值或常数

创建一个空系列

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

例子

#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…. 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创建一个系列

一个 dict 可以作为输入被传递,如果没有指定索引,那么字典中的键就会以排序的顺序来构建索引。如果传递了 索引 ,那么与索引中的标签相对应的数据中的值就会被拉出来。

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

从Scalar创建一个系列

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

#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

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

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'

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程