/ / python четене в много колона CSV файл с номера на реда - python, dataframe, tsv

четене на python в многоколонния CSV файл с номера на реда - python, dataframe, tsv

Какъв е най-чистият начин за четене в многочленния 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();
# ...