Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python - Skip header row with csv.reader [duplicate]

Tags:

python

I tried this proposed solution on a large (7000 line) csv file): Read File From Line 2 or Skip Header Row`

The following code worked but only if I manually remove the header:

RatedTracksFile = open('pyall_rated.csv')
RatedTracksReader = csv.reader(RatedTracksFile)
data_list = list(csv.reader(RatedTracksFile))
eligible1 = open('py_all1.csv', 'a') # open py_all1.csv in append mode
for i in range(len(data_list)):
    trackrating = int(data_list[i][12])
    ...

I tried different ways of adding this suggested code:

with open(fname) as f:
    next(f)
    for line in f:

I am new to python and cannot figure out how to add that in. I keep getting the same value type error since it still reads row 1,col 12 (which is a string from the header) and not the integer found on row 2, col 12:

ValueError: invalid literal for int() with base 10: 'GroupDesc'

SOLVED: Based on Sphinx' comment below (thanks!).

like image 813
user3447273 Avatar asked Feb 10 '18 01:02

user3447273


People also ask

How do I skip a header while reading a CSV file in Python?

To read CSV file without header, use the header parameter and set it to “None” in the read_csv() method.

How do you skip over the header record with the field names in Python?

Another way of solving this is to use the DictReader class, which "skips" the header row and uses it to allowed named indexing.


2 Answers

If your header contains your column names, the nicest solution is to use csv.DictReader

>>> import csv
>>> with open('names.csv') as csvfile:
...     reader = csv.DictReader(csvfile)
...     for row in reader:
...         print(row['first_name'], row['last_name'])
...
Baked Beans
Lovely Spam
Wonderful Spam
like image 124
jamylak Avatar answered Sep 28 '22 00:09

jamylak


import csv
with open("1800.csv", "rb") as files:
   reader = csv.reader(files)
   next(reader, None)
   for data in reader:
      print data

This is working for me, try this.

like image 32
Prabhat jha Avatar answered Sep 28 '22 02:09

Prabhat jha