Monday, 18 July 2016

python - 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 error:



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


Is there any way to get around this easily (i.e. I have unicode characters in my data frame)? And is there a way to write to a tab delimited file instead of a CSV using e.g. a 'to-tab' method (that I dont think exists)?


Answer



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')

No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...