/ / python vo viacerých stĺpcoch súboru tsv s číslami riadkov - python, dataframe, tsv

python, čítaní: v multi-stĺpca tsv súbor čísel riadkov - python, dataframe, tsv

Čo je najčistejší spôsob čítania v multi-stĺpci súboru tsv v pytone so záhlavím, ale kde prvý stĺpec nemá hlavičku a namiesto toho obsahuje čísla riadkov pre každý riadok?

Toto je zrejme spoločný formát zo súborov pochádzajúcich z dátových rámcov R.

Príklad:

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

Nejaké nápady?

odpovede:

10 pre odpoveď č. 1

Záleží na tom, čo chcete robiť s dátami neskôr (a ak je súbor skutočne tsv s oddeľovačom t). Ak to len chcete v súbore zoznamov, môžete použiť csv modul takto:

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

Odporúčam však tiež DataFrame modul od pandas pre čokoľvek mimo jednoduchých operácií pythonu. Môže sa použiť ako taká:

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

DataFrames umožňujú manipuláciu s dátovými súbormi na vysokej úrovni, ako je pridanie stĺpcov, nájdenie priemerov atď.


0 pre odpoveď č. 2

Čo je to s nasledujúcimi natívnymi Python kódmi:

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