如何重命名与另一列同名的列
Posted
技术标签:
【中文标题】如何重命名与另一列同名的列【英文标题】:How to rename a column which have a same name with another one 【发布时间】:2016-10-20 01:53:18 【问题描述】:我有一个数据框如下...
AA BB CC DD EE ... LL MM NN NN
0 a0 b0 c0 d0 e0 ... l0 m0 x0 y0
1 a1 b1 c1 d1 e1 ... l1 m1 x1 y1
2 a2 b2 c2 d2 e2 ... l2 m2 x2 y2
3 a3 b3 c3 d3 e3 ... l3 m3 x3 y3
我想更改右边缘的“NN”的名称。
有人说你应该使用dataframe.columns = [AA,BB,CC...,NN,ZZ]
。
但是,就我而言,列数太多,无法使用此方法。
我已经尝试如下...
dataframe.columns[-1] = 'ZZ'
不过,我刚刚拿到了脚本
TypeError:索引不支持可变操作。
【问题讨论】:
【参考方案1】:您可以在没有最后一个的情况下对所有列名称进行切片,使用tolist
创建新的list
,添加新名称['ZZ']
并重新分配回df.columns
:
df.columns = df.columns[:-1].tolist() + ['ZZ']
print (df)
AA BB CC DD EE ... LL MM NN ZZ
0 a0 b0 c0 d0 e0 ... l0 m0 x0 y0
1 a1 b1 c1 d1 e1 ... l1 m1 x1 y1
2 a2 b2 c2 d2 e2 ... l2 m2 x2 y2
3 a3 b3 c3 d3 e3 ... l3 m3 x3 y3
【讨论】:
【参考方案2】:将列复制到新列表,修改列表的最后一个索引,并重新分配回df.columns
:
>>> col = list(df.columns)
>>> col
['z', 'z']
>>> col[-1] = 'ZZ'
>>> df.columns = col
>>> df
z ZZ
0 1 10
1 2 20
【讨论】:
以上是关于如何重命名与另一列同名的列的主要内容,如果未能解决你的问题,请参考以下文章