熊猫按位置重命名列? [复制]

Posted

技术标签:

【中文标题】熊猫按位置重命名列? [复制]【英文标题】:Pandas rename column by position? [duplicate] 【发布时间】:2017-10-01 06:40:05 【问题描述】:

我只是想知道是否可以按位置重命名列名。 我知道如何使用它们的实际名称重命名它们:

df.rename(columns = )

如果我不知道列名而只知道它们的位置,我该怎么办?

【问题讨论】:

【参考方案1】:

试试这个

df.rename(columns= df.columns[1]: "your value" , inplace = True)

【讨论】:

由于某种原因,我需要df=df.rename() 才能生效 我会选择 John Zwinck 的解决方案。这个解决方案实际上会导致一些奇怪的错误,如下所述:***.com/questions/43291781/… 我尝试了这个解决方案,但在我的代码中出现了非常奇怪的错误。我很难找到问题所在,这一切都归结为使用这个解决方案。所以我确认@rnorris 解释的内容 - 尝试并避免这种情况,因为它可能会导致问题。请改用 John Zwinck 的解决方案,这不会导致问题。 使用df.rename(columns= df.columns[1]: "your value", inplace=True)。否则返回一个副本。请参阅文档:pandas.pydata.org/pandas-docs/stable/generated/… 这种方法只有在所有列名都是唯一的情况下才有效。但是,如果说df.columns[1] = df.columns[5],那么只调用df.columns[1] 将同时更改df.columns[1] 和df.columns[5]【参考方案2】:

你可以这样做:

df.rename(columns= df.columns[1]: "whatever" )

【讨论】:

这不适用于以下列名称International airline passengers: monthly totals in thousands. Jan 49 ? Dec 60 请注意,对于标准行为,将创建并返回一个副本。您可以在 之后添加inplace=True 来修改对象。 不是OP,但非常感谢您的回答。你能告诉我在这种情况下关键字inplace 有什么作用吗?我一直试图弄清楚,因为当我将代码设置为True 时我可以运行代码。再次感谢。 @BowenLiu:你读过文档吗?它描述了inplace

以上是关于熊猫按位置重命名列? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

熊猫重命名列

如何按列索引重命名列?

Python Pandas 合并(和连接)是不是无法通过后缀参数重命名列?

如何使用 Visual Studio 数据库项目重命名列?

Visual Studio 数据库项目重命名列

使用 DACPAC,当表上有触发器时,如何重命名列?