/ / python leyendo en un archivo tsv de varias columnas con números de fila - python, dataframe, tsv

Lectura de Python en un archivo tsv de varias columnas con números de fila: python, dataframe, tsv

¿Cuál es la forma más limpia de leer en un archivo tsv de varias columnas en python con encabezados, pero donde la primera columna no tiene encabezado y en su lugar contiene los números de fila para cada fila?

Aparentemente, este es un formato común de los archivos que provienen de marcos de datos R.

Ejemplo:

    A      B  C
1   a1     b1 c1
2   a2     b2 c2
3   a3     b3 c3

¿Algunas ideas?

Respuestas

10 por respuesta № 1

Depende de lo que desee hacer con los datos posteriormente (y si el archivo es realmente un archivo TSV con un delimitador t). Si solo lo quieres en un conjunto de listas puedes usar el csv módulo así:

import csv
with open("tsv.tsv") as tsvfile:
tsvreader = csv.reader(tsvfile, delimiter="t")
for line in tsvreader:
print line[1:]

Sin embargo, yo también recomendaría el DataFrame módulo de pandas para cualquier cosa fuera de operaciones simples de python. Puede ser utilizado como tal:

from pandas import DataFrame
df = DataFrame.from_csv("tsv.tsv", sep="t")

Los DataFrames permiten la manipulación de conjuntos de datos de alto nivel, como agregar columnas, encontrar promedios, etc.


0 para la respuesta № 2

¿Qué hay de usar los siguientes códigos nativos de Python:

with open("tsvfilename") as f:
lines = f.read().split("n")[:-1]
for i, line in enumerate(lines):
if i == 0: # header
column_names = line.split()
# ...
else:
data = line.split();
# ...