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