2012-03-11 17 views
49

Soy nuevo en python y pandas. Estoy tratando de obtener un archivo tsv cargado en un pandas DataFrame.¿Cómo puedo cargar un archivo tsv en un marco de datos de Pandas?

Esto es lo que intento y el error que estoy recibiendo:

>>> 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

Para los que lleguen a esta respuesta en 2017+, use 'read_csv ('path_to_file', sep = '\ t')'. Ver [esta respuesta a continuación] (https://stackoverflow.com/a/34548894/3707607) –

Respuesta

60

La documentación enumera una función .from_csv que parece hacer lo que quiera:

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

Si tiene un encabezado, puede pasar header=0.

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

Tuve algunos problemas con este método: era muy lento y no indexaba al final. En cambio, utilicé read_table(), que funcionó mucho más rápido y sin el param adicional. – Yurik

+0

Obtengo 'columnas' vacías y los datos son un desastre, ¿puede leer .txt con el encabezado como primera línea, supongo que no? –

+7

Tenga en cuenta que a partir de 17.0 'from_csv' no se recomienda: ¡utilice' pd.read_csv' en su lugar! – rafaelvalle

39

Use read_table(filepath). El separador predeterminado es la pestaña

+0

read_table no requiere ningún parámetro. Perfectamente trabajando. – Jay

38

A partir de 17.0 from_csv se desaconseja.

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

1

archivo abierto, guardar como CSV y luego aplicar df = pd.read_csv ('apps.csv', sep = '\ t')

para cualquier otro formato también, basta con cambiar la etiqueta de septiembre

Cuestiones relacionadas