2013-06-10 8 views
5

Ho una tabella di dati di 100 righe per 25 colonne senza intestazioni di colonna. Ho un elenco di 25 elementi che vorrei assegnare come intestazioni di colonna alla tabella dati (sono già nell'ordine corretto). Non so come farlo in modo efficiente usando i panda. Qualsiasi suggerimento sarebbe molto apprezzato!Assegnazione di nomi di colonne da un elenco a una tabella

Grazie.

risposta

14

È possibile assegnare direttamente all'attributo columns.

>>> import pandas 
>>> # create three rows of [0, 1, 2] 
>>> df = pandas.DataFrame([range(3), range(3), range(3)]) 
>>> print df 
    0 1 2 
0 0 1 2 
1 0 1 2 
2 0 1 2 
>>> my_columns = ["a", "b", "c"] 
>>> df.columns = my_columns 
>>> print df 
    a b c 
0 0 1 2 
1 0 1 2 
2 0 1 2 

È possibile anche assegnare all'indice di realizzare qualcosa di simile

>>> df.index = ["row1", "row2", "row3"] 
>>> print df 
     a b c 
row1 0 1 2 
row2 0 1 2 
row3 0 1 2 
+0

Commentando il primo code- sezione formattata: per my_columns posso semplicemente sostituirlo con il mio file list.txt invece di digitare i nomi delle singole colonne? – Matt

+0

come si carica il list.txt? – waitingkuo

+0

puoi passarlo qualsiasi lista. Ho appena creato una lista fittizia per gli scopi dell'esempio. ad es., se usi il modulo 'csv' per produrre una lista, funzionerà qui. –

3

C'è un argomento nomi per read_csv:

names: array come
            Elenco di nomi di colonne da utilizzare. Se il file non contiene riga di intestazione, allora si
            dovrebbe esplicitamente passare header=None

Cioè, si vuole fare qualcosa di simile:

df = pd.read_csv(fie_name, header=None, names=col_headers_list) 
+0

Forse sono stato sveglio troppo a lungo e ho bisogno di dormire, ma non è chiaro per me. Puoi chiarire un po 'di più per favore? – Matt

+1

Se hai già il DataFrame usa la risposta di @ Jeff, altrimenti puoi creare i nomi delle colonne mentre leggi da csv direttamente su DataFrame. –

Problemi correlati