如何重命名与另一个具有相同名称的列

时间:2016-06-18 08:27:20

标签: python list pandas dataframe rename

我有一个数据框如下......

  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:Index不支持可变操作。

2 个答案:

答案 0 :(得分:0)

您可以将所有列名称切片而不是最后一个,使用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

答案 1 :(得分:0)

将列复制到新列表,修改列表的最后一个索引,然后重新分配回df.columns

>>> col = list(df.columns)
>>> col
['z', 'z']
>>> col[-1] = 'ZZ'
>>> df.columns = col
>>> df
   z  ZZ
0  1  10
1  2  20