我有一个数据框如下......
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不支持可变操作。
答案 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