2012-03-11 24 views
49

Sono nuovo di Python e Panda. Sto cercando di ottenere un file tsv caricato in un panda DataFrame.Come caricare un file tsv in un DataFrame di Pandas?

Questo è quello che sto cercando e l'errore che sto ricevendo:

>>> df1 = DataFrame(csv.reader(open('c:/~/trainSetRel3.txt'), delimiter='\t')) 

Traceback (most recent call last): 
    File "<pyshell#28>", line 1, in <module> 
    df1 = DataFrame(csv.reader(open('c:/~/trainSetRel3.txt'), delimiter='\t')) 
    File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 318, in __init__ 
    raise PandasError('DataFrame constructor not properly called!') 
PandasError: DataFrame constructor not properly called! 
+1

Per chi arriva a questa risposta nel 2017+, usa 'read_csv ('path_to_file', sep = '\ t')'. Vedere [questa risposta sotto] (https://stackoverflow.com/a/34548894/3707607) –

risposta

60

La documentazione elenca una funzione .from_csv che sembra fare quello che vuoi:

DataFrame.from_csv('c:/~/trainSetRel3.txt', sep='\t') 

Se si dispone di un'intestazione, è possibile passare header=0.

DataFrame.from_csv('c:/~/trainSetRel3.txt', sep='\t', header=0) 
+3

Ho avuto alcuni problemi con questo metodo - è stato molto lento e l'indicizzazione fallita alla fine. Invece, ho usato read_table(), che ha funzionato molto più velocemente e senza il parametro extra. – Yurik

+0

Ottengo 'colonne' vuote e i dati sono un mucchio di confusione, questo può leggere .txt separato da tabulazioni con l'intestazione come prima riga, immagino di no. –

+7

Si noti che a partire da 17.0 'from_csv' è sconsigliato: utilizzare' pd.read_csv' invece! – rafaelvalle

39

Utilizzare read_table(filepath). Il separatore predefinito è tab

+0

read_table non richiede alcun parametro. Perfettamente funzionante – Jay

38

A partire dal 17.0 from_csv è sconsigliato.

Utilizzare pd.read_csv(fpath, sep='\t') o pd.read_table(fpath).

1

file aperto, salvare come .csv e quindi applicare df = pd.read_csv ('apps.csv', Settembre = '\ t')

per qualsiasi altro formato anche, basta cambiare il tag settembre

Problemi correlati