Pandas.DataFrame.rename方法中的参数“ index”是什么?

use*_*622 8 python rename col dataframe pandas

Pandas DataFrame有一个重命名方法,该方法带有一个名为“ index”的参数。我不理解文档中对参数的描述: DataFrame.rename

具体来说,我使用它的方式类似于文档网页上的示例:

df.rename(index=str, columns={"A": "a", "B": "c"})
Run Code Online (Sandbox Code Playgroud)

我了解结果,但不明白为什么要设置index=str

index参数用于什么?为什么要设置示例index=str

Psi*_*dom 6

所述索引参数用于重命名索引,取DF从例如:

df.index
# RangeIndex(start=0, stop=3, step=1)

df.rename(index=str).index                               # converts index from int to str
# Index(['0', '1', '2'], dtype='object')
Run Code Online (Sandbox Code Playgroud)

之所以可行,是因为在重命名函数中,您还可以将函数传递给indexcolumns参数,该参数将应用于索引和column中的每个元素。在这里,str作为函数,将每个索引从int转换为str对象。


另一个例子:

df.rename(index=lambda x: x*2).index
# Int64Index([0, 2, 4], dtype='int64')
Run Code Online (Sandbox Code Playgroud)

  • 好的,但是当我想重命名列时,为什么我们需要将索引中的每个元素转换为`str`?为什么df.rename(columns = {“ A”:“ a”,“ B”:“ c”})不起作用? (3认同)
  • 我相信文档正在尝试向您展示如何使用* index *参数(尽管可能不是一个清晰的方法),如`df.rename(columns = {“ A”:“ a”,“ B”:“ c“})`应该正常工作。 (3认同)
  • @ user3731622在注释中显示`rename()`的方式实际上是可行的。您无需指定索引,它是可选的。 (3认同)