pandas 系列构造函数将根据给定的数据自动创建系列索引标签。如果要指定那些索引标签,我们可以使用pandas系列函数的index关键字参数分别给出这些索引值。
Python字典是pandas系列的数据,我们没有指定任何索引标签,那么python字典值的键作为索引标签。
也可以在创建后指定或更改 pandas Series 对象的索引标签。可以通过使用 pandas 系列构造函数的 index 属性来完成。
import pandas as pd # create a series s = pd.Series([1,2,3,4,6]) print(s) # change the index s.index = list('ABCDE') print('\nSeries with new index') print(s)
pd 是导入pandas 包时定义的pandas 包别名。之后使用pandas Series 函数创建了一个简单的pandas Series 对象,这里的数据是一个整数列表。
并且未指定我们数据的索引标签,但 pandas Series 构造函数自动为我们的数据创建了一个索引标签,该标签来自 0-4 个值。
在本例中,我们通过使用索引属性从 0、1、2、3、4 到 A、B、C、D、E 更改了索引标签。
输出结果
0 1 1 2 2 3 3 4 4 6 dtype: int64 Series with new index A 1 B 2 C 3 D 4 E 6 dtype: int64
上面的输出块中有两组,一组是我们初始系列对象的输出,带有自动生成的索引标签。第二个块是更改索引标签后系列对象 's' 的输出。
在这里,我们将 pandas Series 对象的索引标签从整数值更改为对象数据类型。
这个例子将告诉你另一种在创建后更改我们的 pandas Series 对象的索引标签的方法。这里我们有pandas 系列功能中的函数,用于更改系列索引标签或更改系列对象的名称。Series.rename()
import pandas as pd # create a series s = pd.Series([1,2,3,4,6]) print(s) # change the index s = s.rename(lambda x: x**2) print('\nSeries with new labels') print(s)
lambda 函数作为Series.rename方法的参数提供,这个 python lambda 函数将为我们的索引标签生成平方值。
使用这些生成的平方值,该Series.rename方法将返回一个新的系列对象作为输出,并且不会更新实际的系列对象 's'。这就是为什么在这里我们再次将结果对象重新分配给系列对象“s”。
输出结果
0 1 1 2 2 3 3 4 4 6 dtype: int64 Series with new labels 0 1 1 2 4 3 9 4 16 6 dtype: int64
第一个块是带有默认索引标签的初始系列对象的输出,第二个是带有更新索引标签的结果系列对象。