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.
