我在pandas中有一个数据帧,我想把它写到CSV文件中。我使用的是:
df.to_csv('out.csv')
并得到错误:
UnicodeEncodeError: 'ascii' codec can't encode character u'\u03b1' in position 20: ordinal not in range(128)
有没有什么方法可以很容易地解决这个问题(例如,我的数据帧中有unicode字符)?还有,有没有一种方法可以使用“to-tab”方法(我认为不存在)写入以制表符分隔的文件,而不是CSV?
要通过选项卡进行分隔,可以使用to_csv
的sep
参数:
df.to_csv(file_name, sep='\t')
若要使用特定的编码(例如“UTF-8”),请使用encoding
参数:
df.to_csv(file_name, sep='\t', encoding='utf-8')
当您使用to_csv
方法将dataframe
对象存储到csv文件中时,您可能不需要存储dataframe
对象每一行的前面索引。
您可以通过向index
参数传递false
布尔值来避免这种情况。
有点像:
df.to_csv(file_name, encoding='utf-8', index=False)
因此,如果您的DataFrame对象类似于:
Color Number
0 red 22
1 blue 10
csv文件将存储:
Color,Number
red,22
blue,10
代替(传递默认值true
的情况)
,Color,Number
0,red,22
1,blue,10