提问者:小点点

将pandas数据帧写入CSV文件


我在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?


共2个答案

匿名用户

要通过选项卡进行分隔,可以使用to_csvsep参数:

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