开发者社区> 问答> 正文

在Python中动态更改列名

我是Python和编码的新手,所以请裸身。

我有一个50列的数据框。索引行的问题在于,所有这些列都被命名为:* Unnamed . *

我想重命名列。我知道在数据框中,您可以通过以下方式重命名列:

df.rename(columns={"A": "a", "B": "c"})

但是,由于我有50列,我想通过循环重命名这些列,以提高学习效率。

我想将* column 0 重命名为'Name' column 1 *重命名为Country,其余重命名为Group 1,Group 2,依此类推。

到目前为止,这是我针对第3列到第50列的解决方案。我正在考虑手动重命名前2列,因为我无法在循环中找到更好的方法。

for col in df.columns[2:]:
    start = 'Group'
    x = 1
    name = '{}'+x.format(start)
    df = df.rename(columns={col:name})
    x = x+1

我收到以下错误:

AttributeError: 'int' object has no attribute 'format'

现在我明白了,这是因为x值。但是我想出一种方法来使列名针对每个列动态更改。

有人可以帮我吗?

问题来源:stackoverflow

展开
收起
is大龙 2020-03-23 19:56:24 436 0
1 条回答
写回答
取消 提交回答
  • 您应该在循环之前定义x,以免它一次又一次地从1开始。可以使用字符串'Group'代替开始变量。变量x应该转换为字符串格式。这将使您可以连接两个字符串-'Group'和相应的x号。

    x = 1
    for col in df.columns[2:]:
      name = 'Group '+str(x)
      df = df.rename(columns={col:name})
      x = x+1
    

    回答来源:stackoverflow

    2020-03-23 19:56:31
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载