Pandas.DataFrame.rename 方法中的参数“index”是啥?
Posted
技术标签:
【中文标题】Pandas.DataFrame.rename 方法中的参数“index”是啥?【英文标题】:What is the parameter "index" in Pandas.DataFrame.rename method?Pandas.DataFrame.rename 方法中的参数“index”是什么? 【发布时间】:2017-06-24 03:17:24 【问题描述】:Pandas DataFrame 有一个 rename 方法,它接受一个名为“index”的参数。 我不明白文档中参数的描述: DataFrame.rename
具体来说,我就像文档网页上的示例一样使用它:
df.rename(index=str, columns="A": "a", "B": "c")
我明白结果,但我不明白为什么我们设置index=str
。
index
参数是做什么用的?
为什么示例设置index=str
?
【问题讨论】:
【参考方案1】:index参数用于重命名索引,取例子中的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')
这是可行的,因为在 rename 函数中,您还可以将函数传递给 index 和 columns 参数,这些参数将应用于索引和列。这里 str 充当一个函数,并将每个索引从 int 转换为 str 对象。
另一个例子:
df.rename(index=lambda x: x*2).index
# Int64Index([0, 2, 4], dtype='int64')
【讨论】:
好的,但是当我想重命名列时,为什么我们需要将索引中的每个元素转换为str
?为什么df.rename(columns="A": "a", "B": "c")
不起作用?
我相信文档正试图向您展示如何使用 index 参数(虽然可能不是一个明确的方法),因为 df.rename(columns="A": "a", "B": "c")
应该可以正常工作。
@user3731622 在 cmets 中显示 rename()
的方式确实有效。您不需要指定索引,它是可选的。
好的,谢谢。我一定有另一个问题 b/c 我以为我试过了,但没有用。 df.rename(columns="A": "a", "B": "c")
确实有效。以上是关于Pandas.DataFrame.rename 方法中的参数“index”是啥?的主要内容,如果未能解决你的问题,请参考以下文章