我需要更改数据框中列子集的名称,从它们的数字到该数字加上字符串后缀。我知道有一个添加后缀的功能,但它似乎并不适用于索引。
我创建一个包含所有列索引的列表,然后运行一个循环,对于该列表中的每个项目,它将与列表项匹配的dataframe列重命名为相同的数字加上后缀字符串。
if scalename == "CDR":
print(scaledf.columns.tolist())
oldCols = scaledf.columns[7:].tolist()
for f in range(len(oldCols)):
changeCol = int(oldCols[f])
print(changeCol)
scaledf.rename(columns = {changeCol:scalename + str(changeCol)})
print(scaledf.columns)
这不起作用。
代码将打印出列名,并打印出每个项目,但不会重命名列。它不会抛出错误,它只是不起作用。我在变异后尝试了变异,并得到了各种其他错误,但这个无错误的代码什么也没做。它只是运行,并没有重命名。
任何帮助都会受到重视!谢谢。
添加列表样本:
45
52
54
55
59
60
61
66
67
68
69
73
74
75
80
81
82
94
101
103
104
108
110
115
116
117
129
136
138
139
143
144
145
150
151
157
158
159
171
178
180
181
185
186
187
192
193
199
200
201
213
220
222
223
227
228
229
234
235
236
答案 0 :(得分:1)
试试这个:
scaledf = scaledf.rename(columns=lambda c:scalename + str(c) if c in oldCols else c)