/ / czytanie Pythona w wielokolumnowym pliku tsv z numerami wierszy - python, ramka danych, tsv

czytanie Pythona w wielokolumnowym pliku tsv z numerami wierszy - python, ramka danych, tsv

Jaki jest najczystszy sposób czytania w wielokolumnowym pliku tsv w pythonie z nagłówkami, ale gdzie pierwsza kolumna nie ma nagłówka i zamiast tego zawiera numery wierszy dla każdego wiersza?

Jest to najwyraźniej popularny format plików pochodzących z ramek danych R.

Przykład:

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

Jakieś pomysły?

Odpowiedzi:

10 dla odpowiedzi № 1

Zależy od tego, co chcesz później zrobić z danymi (a jeśli plik jest naprawdę tsv z separatorem t). Jeśli chcesz go tylko w zestawie list, możesz użyć csv moduł taki jak poniżej:

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

Jednak ja również polecam DataFrame moduł od pandas dla czegokolwiek poza prostymi działaniami Pythona. Może być używany jako taki:

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

DataFrames umożliwiają manipulację na wysokim poziomie zestawów danych, takich jak dodawanie kolumn, wyszukiwanie średnich itp.


0 dla odpowiedzi nr 2

Jak korzystać z następujących natywnych kodów Pythona:

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