Cargar datos de txt con pandas

Resuelto randomal asked hace 10 años • 12 respuestas

Estoy cargando un archivo txt que contiene una combinación de datos flotantes y de cadena. Quiero almacenarlos en una matriz donde pueda acceder a cada elemento. Ahora solo estoy haciendo

import pandas as pd

data = pd.read_csv('output_list.txt', header = None)
print data

Cada línea del archivo de entrada tiene el siguiente aspecto:

 1 0 2000.0 70.2836942112 1347.28369421 /file_address.txt

Ahora los datos se importan como una columna única. ¿Cómo puedo dividirlo para almacenar diferentes elementos por separado (para poder llamar data[i,j])? ¿Y cómo puedo definir un encabezado?

randomal avatar Feb 04 '14 14:02 randomal
Aceptado

Puedes usar:

data = pd.read_csv('output_list.txt', sep=" ", header=None)
data.columns = ["a", "b", "c", "etc."]

Agregue sep=" "su código, dejando un espacio en blanco entre las comillas. Entonces los pandas pueden detectar espacios entre valores y ordenarlos en columnas. Las columnas de datos sirven para nombrar sus columnas.

pietrovismara avatar Feb 04 '2014 07:02 pietrovismara

Me gustaría agregar a las respuestas anteriores, puedes usar directamente

df = pd.read_fwf('output_list.txt')

fwf significa líneas formateadas de ancho fijo.

Meenakshi Ravisankar avatar Aug 13 '2017 06:08 Meenakshi Ravisankar

Puedes hacer como:

import pandas as pd
df = pd.read_csv('file_location\filename.txt', delimiter = "\t")

(como, df = pd.read_csv('F:\Desktop\ds\text.txt', delimitador = "\t")

tulsi kumar avatar Jun 27 '2018 16:06 tulsi kumar

La solución de @Pietrovismara es correcta, pero me gustaría agregar: en lugar de tener una línea separada para agregar nombres de columnas, es posible hacerlo desde pd.read_csv.

df = pd.read_csv('output_list.txt', sep=" ", header=None, names=["a", "b", "c"])
Sam Perry avatar Aug 04 '2016 03:08 Sam Perry