如何在创建后更改 Pandas 系列的索引值?
Pandas 系列构造函数将根据给定的数据自动创建系列索引标签。如果要指定这些索引标签,我们可以使用 Pandas 系列函数的 index 关键字参数单独提供这些索引值。
Python 字典是 Pandas 系列的数据,如果我们没有指定任何索引标签,则 Python 字典值的键将作为索引标签。
也可以在创建后指定或更改 Pandas 系列对象的索引标签。可以使用 pandas 系列构造函数的 index 属性来完成。
示例
import pandas as pd # 创建系列 s = pd.Series([1,2,3,4,6]) print(s) # 更改索引 s.index = list('ABCDE') print('
Series 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 功能中有一个 Series.rename() 函数,它用于更改系列索引标签或更改系列对象的名称。
import pandas as pd # 创建系列 s = pd.Series([1,2,3,4,6]) print(s) # 更改索引 s = s.rename(lambda x: x**2) print('
Series 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
第一个块是具有默认索引标签的初始系列对象的输出,第二个块是具有更新索引标签的结果系列对象。