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 № 1Zależ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();
# ...