Какъв е най-чистият начин за четене в многочленния CSV файл в Python с заглавки, но където първата колона няма заглавка и вместо това съдържа номерата на реда за всеки ред?
Това очевидно е общ формат от файловете, идващи от R рамки за данни.
Пример:
A B C
1 a1 b1 c1
2 a2 b2 c2
3 a3 b3 c3
Някакви идеи?
Отговори:
10 за отговор № 1Зависи от това, което искате да направите с данните след това (и ако файлът наистина е ЦСС с разделител t). Ако просто го искате в набор от списъци, можете да използвате csv
модул като така:
import csv
with open("tsv.tsv") as tsvfile:
tsvreader = csv.reader(tsvfile, delimiter="t")
for line in tsvreader:
print line[1:]
Аз обаче бих препоръчал и DataFrame
модул от pandas
за всичко извън обикновените операции на питона. Той може да се използва като такъв:
from pandas import DataFrame
df = DataFrame.from_csv("tsv.tsv", sep="t")
DataFrames позволяват манипулиране на масиви от високо ниво, като добавяне на колони, намиране на средни стойности и др.
0 за отговор № 2
Какво ще кажете за използването на следните кодове на 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();
# ...