2016-11-06 76 views
3

我有一個數據幀(df)有44列,我想重命名列2:44。我有一個長度爲42的具有新列名的列表(namesList)。然後我嘗試使用列表來重新命名我的專欄:如何使用列表重命名大熊貓列

df.columns[2:len(df.columns)] = namesList 

但是我得到的錯誤:

TypeError: Index does not support mutable operations

爲什麼會出現這個錯誤?

回答

0

你需要生成新的列名 - 第一,從舊的,另一名來自list秒值:

df.columns = df.columns[:2].tolist() + namesList 

樣品:

df = pd.DataFrame({'A':[1,2,3], 
        'B':[4,5,6], 
        'C':[7,8,9], 
        'D':[1,3,5], 
        'E':[5,3,6], 
        'F':[7,4,3]}) 

print (df) 
    A B C D E F 
0 1 4 7 1 5 7 
1 2 5 8 3 3 4 
2 3 6 9 5 6 3 

namesList = ['K','L','M','N'] 
df.columns = df.columns[:2].tolist() + namesList 
print (df) 
    A B K L M N 
0 1 4 7 1 5 7 
1 2 5 8 3 3 4 
2 3 6 9 5 6 3 
+0

我們應該期待「指數不支持可變操作」時,試圖做到這一點? – Amir

+0

@Amir - 你給列指定了新的列名列表嗎?如果是,那麼不是。 – jezrael