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

Yip*_*pin 0 python

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

我的代码是:

df1.to_csv('people.csv', encoding = "utf-16",index = False)
Run Code Online (Sandbox Code Playgroud)

原始数据帧的头部是:

在此输入图像描述

如果我使用 utf-8,输出为(列正确但编解码器不正确): 在此输入图像描述

如果我使用 utf-16,输出为(编解码器正确但列不正确):在此输入图像描述

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

Yip*_*pin 5

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

\n\n
df1.to_csv(\'people.csv\', encoding = "utf-8-sig",index = False)\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在的输出是:

\n\n

在此输入图像描述

\n