pythoncsvpandasdataframe

Writing a pandas DataFrame to CSV file


I have a dataframe in pandas which I would like to write to a CSV file.

I am doing this using:

df.to_csv('out.csv')

And getting the following error:

UnicodeEncodeError: 'ascii' codec can't encode character u'\u03b1' in position 20: ordinal not in range(128)

Solution

  • To delimit by a tab you can use the sep argument of to_csv:

    df.to_csv(file_name, sep='\t')
    

    To use a specific encoding (e.g. 'utf-8') use the encoding argument:

    df.to_csv(file_name, sep='\t', encoding='utf-8')
    

    In many cases you will want to remove the index and add a header:

    df.to_csv(file_name, sep='\t', encoding='utf-8', index=False, header=True)