Skip to content
Advertisement

Pandas DataFrame.to_csv raising IOError: No such file or directory

Hi: I am trying to use the Pandas DataFrame.to_csv method to save a dataframe to a csv file:

filename = './dir/name.csv'

df.to_csv(filename)

However I am getting the error:

IOError: [Errno 2] No such file or directory: './dir/name.csv'

Shouldn’t the to_csv method be able to create the file if it doesn’t exist? This is what I am intending for it to do.

Advertisement

Answer

to_csv does create the file if it doesn’t exist as you said, but it does not create directories that don’t exist. Ensure that the subdirectory you are trying to save your file within has been created first.

I often do something like this in my work:

import os

outname = 'name.csv'

outdir = './dir'
if not os.path.exists(outdir):
    os.mkdir(outdir)

fullname = os.path.join(outdir, outname)    

df.to_csv(fullname)

This can easily be wrapped up in a function if you need to do this frequently.

User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement