首页 > 编程笔记 > Python笔记 阅读:10

Python Pandas创建Series对象的多种方法(附带实例)

Series 是 Pandas 的核心对象之一,该对象与 Python 中的列表对象类似,它们存储数据的方式与一维数组类似。不过 Series 对象还包含与数据对应的索引(标签)。

为了使本节的示例代码正常运行,需要在每个示例的开头添加以下代码,在 Python 中导入 Pandas 库,并将其别名设置为 pd,本节中的每个示例都使用该别名:
import pandas as pd

使用 Pandas 中的 Series() 函数可以创建 Series 对象,该函数主要有以下两个参数:

Python列表创建Series对象

下面的代码是使用 Python 中的列表对象作为 data 参数来创建 Series 对象,并将从 1 开始的自然数序列设置为数据的索引,最后一个索引编号会根据列表中的元素总数自动调整。
data = list('python')
index = list(range(1, len(data)+1))
sr = pd.Series(data, index)
上述代码将创建以下数据:
1    p
2    h
3    t
4    h
5    o
6    n
为 index 变量赋值时,可以省略 list() 函数,将上面的代码改为以下形式:
index = range(1, len(data)+1))

如果不想使用中间变量 data 和 index,则可以将 3 行代码合并为一行:
sr = pd.Series(list('python'), range(1, len(names)+1))

如果省略 index 参数,则创建的 Series 对象中的数据起始索引将从 0 开始。
0    p
1    h
2    t
3    h
4    o
5    n

除了数字之外,也可以使用字符串作为索引。下面的代码是使用从 A 开始的英文大写字母作为数据的索引:
data = list('python')
index = list('ABCDEF')
sr = pd.Series(data, index)
上述代码将创建以下数据:
A    p
B    h
C    t
D    h
E    o
F    n
data 参数的值也可以是手动输入元素的列表,列表中的各个元素可以具有不同的数据类型。
data=[1, 2, 3, 'Python', 'NumPy', 'Pandas']
index= list('ABCDEF')
sr = pd.Series(data, index)
上述代码将创建以下数据:
A         1
B         2
C         3
D    Python
E     NumPy
F    Pandas
提示,当 index 参数中的索引个数大于 data 参数中的数据个数时,多出的索引所对应的数据将显示为 NaN(Not a Number),这是在 Pandas 中表示缺失数据的方法。

Python字典创建Series对象

下面的代码与上一个示例的功能相同,此处使用 Python 中的字典对象作为 data 参数来创建 Series 对象,此时会将字典中的键作为数据的索引,所以无须额外指定 index 参数。
data = dict(zip(range(1, 7), list('python')))
sr = pd.Series(data)

如果在使用字典的情况下仍然指定了 index 参数,则最后创建的数据的索引将按照 index 参数的顺序显示,并从字典中提取相应的值:
data = dict(zip(range(1, 7), list('python')))
sr = pd.Series(data, [1, 3, 5, 2, 4, 6])
上述代码将创建以下数据:
1    p
3    t
5    o
2    y
4    h
6    n

Python使用字面值创建Series对象

下面的代码使用字面值作为 data 参数来创建 Series 对象。由于 index 参数有 6 个值(1~6),而 data 参数只有一个值(666),为了使每个索引都有对应的值,所以会将 666 重复显示 6 次,使每个索引都有一个值。
sr = pd.Series(666, range(1, 7))
上述代码将创建以下数据:
1    666
2    666
3    666
4    666
5    666
6    666
提示,Python 中的字面值在 Pandas 和 NumPy 中称为标量值,表示没有方向的值。

NumPy数组创建Series对象

下面的代码是使用 NumPy 中的 arange() 函数创建一个一维数组,并将其作为 data 参数来创建 Series 对象:
sr = pd.Series(np.arange(100,106))
上述代码将创建以下数据:
0    100
1    101
2    102
3    103
4    104
5    105

相关文章