rask004
rask004

Reputation: 590

removing lines from the start of a csv file, python

Say I have the following file:

student.id, student.name, student.is_male, student.birth_date, student.courseid, student.gradeid 
90, 'Jeff', False, datetime.date(2014, 8, 5), 1, 5
91, 'Allan', True, datetime.date(2014, 8, 5), 1, 1
92, 'Maria', False, datetime.date(2014, 8, 5), 2, 8
93, 'Lucie', False, datetime.date(2014, 8, 5), 5, 7
94, 'John', True, datetime.date(2014, 8, 5), 3, 1
95, 'Pat', False, datetime.date(2014, 8, 5), 4, 2
96, 'Jeff', False, datetime.date(2014, 8, 5), 1, 7
97, 'Allan', True, datetime.date(2014, 8, 5), 4, 6
98, 'Maria', False, datetime.date(2014, 8, 5), 4, 7
99, 'Lucie', False, datetime.date(2014, 8, 5), 5, 1
100, 'John', True, datetime.date(2014, 8, 5), 3, 2
101, 'Pat', False, datetime.date(2014, 8, 5), 3, 5
102, 'Jeff', False, datetime.date(2014, 8, 5), 1, 7
103, 'Allan', True, datetime.date(2014, 8, 5), 4, 5
104, 'Maria', False, datetime.date(2014, 8, 5), 2, 8
105, 'Lucie', False, datetime.date(2014, 8, 5), 5, 9
106, 'John', True, datetime.date(2014, 8, 5), 3, 7
107, 'Pat', False, datetime.date(2014, 8, 5), 2, 8
108, 'Jeff', False, datetime.date(2014, 8, 5), 1, 3
109, 'Allan', True, datetime.date(2014, 8, 5), 1, 9
110, 'Maria', False, datetime.date(2014, 8, 5), 3, 4
111, 'Lucie', False, datetime.date(2014, 8, 5), 1, 4
112, 'John', True, datetime.date(2014, 8, 5), 1, 1
113, 'Pat', False, datetime.date(2014, 8, 5), 3, 8
114, 'Jeff', False, datetime.date(2014, 8, 5), 4, 2
115, 'Allan', True, datetime.date(2014, 8, 5), 2, 5
116, 'Maria', False, datetime.date(2014, 8, 5), 5, 5
117, 'Lucie', False, datetime.date(2014, 8, 5), 3, 8
118, 'John', True, datetime.date(2014, 8, 5), 1, 9
119, 'Pat', False, datetime.date(2014, 8, 5), 5, 8
120, 'Jeff', False, datetime.date(2014, 8, 5), 1, 1
121, 'Allan', True, datetime.date(2014, 8, 5), 4, 3
122, 'Maria', False, datetime.date(2014, 8, 5), 5, 3
123, 'Lucie', False, datetime.date(2014, 8, 5), 1, 5
124, 'John', True, datetime.date(2014, 8, 5), 5, 5
125, 'Pat', False, datetime.date(2014, 8, 5), 5, 1
126, 'Jeff', False, datetime.date(2014, 8, 5), 5, 9
127, 'Allan', True, datetime.date(2014, 8, 5), 5, 6
128, 'Maria', False, datetime.date(2014, 8, 5), 2, 5
129, 'Lucie', False, datetime.date(2014, 8, 5), 1, 2
130, 'John', True, datetime.date(2014, 8, 5), 3, 8

In python, I want to read the header line and first 20 lines into a list of dictionaries, with : as the key:value pairs in each dictionary. I want then to update the file contents, to retain the header and following lines while dropping the processed lines.

how do I do this?

Thank you

Upvotes: 0

Views: 32

Answers (1)

derchambers
derchambers

Reputation: 954

This is a perfect job for a Pandas data frame. It will make your life much easier for whatever you are trying to do here.

import pandas as pd
df=pd.read_csv('your.csv')

There are then many convenient (and fast) ways to manipulate the data and access specific rows and indices.

check out the docs here:

http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.html

Upvotes: 1

Related Questions