2016-10-23 60 views
1

Я пытаюсь переименовать первые N столбцов DataFrame.Частично переименование столбцов в Pandas DataFrame

import pandas as pd 
Dat = pd.read_csv(inputName, delimiter='\t', header=0) 

Исходная таблица выглядит следующим образом:

$Date  $ciq_ticker $industry  price ... 
'09/30/2016 'AAPL'   'Technology'  100.00 
'09/30/2016 'AMZN'   'Consumer'  1000.00 
... 

Я хочу сделать некоторые имена столбцов более интуитивным. Что у меня в голове:

descriptors = ['date','ticker','industry'] 
Dat.columns[:len(descriptors)] = descriptors 

Это дает сообщение об ошибке «Индекс не поддерживает изменчивые операции».

Я знаю, что-то вроде это работает:

Dat.rename(columns={'$Date': 'date', '$ciq_ticker': 'ticker', '$industry': 'industry'}, inplace=True) 

Но я просто не нравится идея того, чтобы явно ввести исходные имена столбцов. Правда, реальная таблица содержит более 20 столбцов, которые мне нужно изменить.

ответ

1

Попробуйте это:

In [91]: cols = ['date','ticker','industry'] 

In [92]: df 
Out[92]: 
     $Date $ciq_ticker $industry price 
0 09/30/2016  AAPL Technology 100.0 
1 09/30/2016  AMZN Consumer 1000.0 

In [93]: df.columns = cols + df.columns.tolist()[len(cols):] 

In [94]: df 
Out[94]: 
     date ticker industry price 
0 09/30/2016 AAPL Technology 100.0 
1 09/30/2016 AMZN Consumer 1000.0 
+0

нормально, очевидно, трюк это .tolist вещь. Я не могу напрямую манипулировать именами столбцов с помощью Dat.columns [: len (дескрипторы)]. –

Смежные вопросы