2016-11-06 5 views
3

У меня есть dataframe (df), который имеет 44 столбца, и я хочу переименовать столбцы 2:44. У меня есть список (namesList) длиной 42, который имеет новые имена столбцов. Затем я пытаюсь переименовать мои столбцы с помощью списка:Как переименовать столбцы в pandas, используя список

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