创建后如何更改 Pandas 系列的索引值?
pandas系列构造函数将根据给定的数据自动创建系列索引标签。如果要指定那些索引标签,我们可以使用pandas系列函数的index关键字参数分别给出这些索引值。
Python字典是pandas系列的数据,我们没有指定任何索引标签,那么python字典值的键作为索引标签。
也可以在创建后指定或更改pandasSeries对象的索引标签。可以通过使用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包别名。之后使用pandasSeries函数创建了一个简单的pandasSeries对象,这里的数据是一个整数列表。
并且未指定我们数据的索引标签,但pandasSeries构造函数自动为我们的数据创建了一个索引标签,该标签来自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'的输出。
在这里,我们将pandasSeries对象的索引标签从整数值更改为对象数据类型。
示例
这个例子将告诉你另一种在创建后更改我们的pandasSeries对象的索引标签的方法。这里我们有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方法的参数提供,这个pythonlambda函数将为我们的索引标签生成平方值。
使用这些生成的平方值,该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
第一个块是带有默认索引标签的初始系列对象的输出,第二个是带有更新索引标签的结果系列对象。