CSV read specific row

Question:

I have a CSV file with 100 rows.

How do I read specific rows?

I want to read say the 9th line or the 23rd line etc?

Asked By: blue_zinc

||

Answers:

You simply skip the necessary number of rows:

with open("test.csv", "rb") as infile:
    r = csv.reader(infile)
    for i in range(8): # count from 0 to 7
        next(r)     # and discard the rows
    row = next(r)   # "row" contains row number 9 now
Answered By: Tim Pietzcker

You could read all of them and then use normal lists to find them.

with open('bigfile.csv','rb') as longishfile:
    reader=csv.reader(longishfile)
    rows=[r for r in reader]
print row[9]
print row[88]

If you have a massive file, this can kill your memory but if the file’s got less than 10,000 lines you shouldn’t run into any big slowdowns.

Answered By: Malcolm Murdoch

You could use a list comprehension to filter the file like so:

with open('file.csv') as fd:
    reader=csv.reader(fd)
    interestingrows=[row for idx, row in enumerate(reader) if idx in (28,62)]
# now interestingrows contains the 28th and the 62th row after the header
Answered By: ch3ka

Use list to grab all the rows at once as a list. Then access your target rows by their index/offset in the list. For example:

#!/usr/bin/env python

import csv

with open('source.csv') as csv_file:
    csv_reader = csv.reader(csv_file)
    rows = list(csv_reader)

    print(rows[8])
    print(rows[22])
Answered By: Alan W. Smith

You can do something like this :

with open('raw_data.csv') as csvfile:
    readCSV = list(csv.reader(csvfile, delimiter=','))
    row_you_want = readCSV[index_of_row_you_want]
Answered By: xtiger

May be this could help you , using pandas you can easily do it with loc

'''
Reading 3rd record using pandas -> (loc)
Note : Index start from 0 
If want to read second record then 3-1 -> 2
loc[2]` -> read second row and `:` -> entire row details 
'''

import pandas as pd
df = pd.read_csv('employee_details.csv')
df.loc[[2],:]

Output :

Output

Answered By: codeholic24
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.