write csv to object and read into pandas
Peter Otten
__peter__ at web.de
Thu Oct 15 04:16:10 EDT 2015
Vincent Davis wrote:
> I have a csv file I have to make some changes to before I read it into
> pandas. Currently I open the csv read each row, make changes and save it
> to a new file. Then read it into pandas with pandas.read_csv(). How do I
> skip writing the file to disk? Using python3.5.
>
> This is what I am doing now.
>
> with open(infile,"r") as fin:
> with open(outfile,"w") as fout:
> writer=csv.writer(fout)
> for row in csv.reader(fin):
> #do stuff to the row
> writer.writerow(row)
>
> df = pandas.csv_reader(outfile)
If you can implement "do stuff to the row" in pandas I'd recommend that.
If not, the following should work (though I'm not a pandas expert):
def preprocess(filename):
with open(filename) as f:
for row in csv.reader(f):
# do stuff
yield row
rows = preprocess("pandas.csv")
df = pandas.DataFrame.from_records(rows, columns=next(rows))
df = df.convert_objects(convert_numeric=True)
If the csv file doesn't have a header row omit the
columns=next(rows)
argument.
More information about the Python-list
mailing list