使用utf-16时为什么df.to_csv()的输出只有一列?

时间:2018-04-06 02:39:52

标签: python

我现在正在尝试输出用塞尔维亚语编写的数据框。首先,我尝试使用utf-8或utf-8-sig编解码器。有多列,这是正确的。但是,输出csv文件有乱码问题。然后我尝试使用utf-16输出数据帧。这次编解码器是正确的。但输出csv只有一列,如:

我的代码是:

df1.to_csv('people.csv', encoding = "utf-16",index = False)

原始数据框的头部是:

enter image description here

如果我使用utf-8,则输出为(正确的列但编解码器不正确): enter image description here

如果我使用utf-16,则输出为(正确的编解码器但列不正确):enter image description here

我该如何解决这个问题。谢谢!

1 个答案:

答案 0 :(得分:2)

感谢Robᵩ和Andrey Tyukin的帮助!我将编解码器修改为utf-8-sig,我得到了正确的列。

df1.to_csv('people.csv', encoding = "utf-8-sig",index = False)

现在的输出是:

enter image description here