[英]Changing column name dynamically in Python
我有一个包含 50 列的数据框。 索引行的问题在于,所有列都被命名为:未命名。
我想重命名列。 我知道使用数据框可以通过这种方式重命名列:
df.rename(columns={"A": "a", "B": "c"})
但是由于我有 50 个列,我想通过循环重命名这些列,以便学习和提高效率。
我想将第0 列重命名为'Name'
,将Group 1, Group 2
列重命名为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 值。 但是我无法想出一种方法来为每一列动态更改列名。
鉴于x
是一个int
并且你想得到一个字符串'Group <x>'
,你只需使用
name = 'Group {:d}'.format(x)
或者
name = '{} {:d}'.format(start, x)
如果你喜欢。 如果您更喜欢使用+
进行连接而不是格式字符串,则可以使用
name = start + ' ' + str(x)
您应该在循环之前定义 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.