/ / python lendo no arquivo tsv de várias colunas com números de linha - python, dataframe, tsv

leitura de python no arquivo tsv de várias colunas com números de linha - python, dataframe, tsv

Qual é a maneira mais limpa de ler em um arquivo tsv de várias colunas em python com cabeçalhos, mas onde a primeira coluna não tem cabeçalho e, em vez disso, contém os números de linha de cada linha?

Este é aparentemente um formato comum de arquivos provenientes de quadros de dados R.

Exemplo:

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

Alguma ideia?

Respostas:

10 para resposta № 1

Depende do que você deseja fazer com os dados depois (e se o arquivo for realmente um tsv com um delimitador t). Se você quiser apenas em um conjunto de listas, você pode usar o csv módulo assim:

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

No entanto, eu também recomendaria o DataFrame módulo de pandas para qualquer coisa fora das operações simples de python. Pode ser usado como tal:

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

DataFrames permitem manipulação de alto nível de conjuntos de dados, como adicionar colunas, encontrar médias, etc.


0 para resposta № 2

Que tal usar os seguintes códigos Python nativos:

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();
# ...