我是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
您应该在循环之前定义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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。