使用欧元符号分隔符将pandas写入csv时出错

时间:2016-03-08 12:11:30

标签: python python-2.7 pandas

我试图用“'”'作为分隔符。

data.to_csv(file_path, sep = '€')

然而,我收到错误:

TypeError: "delimiter" must be an 1-character string

我如何克服这个问题? 我必须使用欧元符号作为分隔符

3 个答案:

答案 0 :(得分:2)

切换到python 3的时间。

这是因为默认字符串在python 2中是ascii。ASCII字符是1个字节(因此它们的范围是0到127)。这不足以代表所有角色;在这种情况下'€'。要表示这3个字节是必需的。

因此世界变成了unicode。哪个有更高的范围。幸运的是python3对其所有字符串使用unicode 在python3中data.to_csv(file_path, sep = '€')将正常工作。

答案 1 :(得分:0)

您可以使用仅使用一个字节编码的编码,如iso8859-15或cp1252:

df = pd.DataFrame([[1, 2, 3], [4, 5, 6]])
sep = u'€'.encode('iso8859-15')
result = df.to_csv(sep=sep)
print result.decode('iso8859-15')

€0€1€2
0€1€2€3
1€4€5€6

请注意,这在python 3中不起作用,其中sep必须是unicode字符串。

答案 2 :(得分:0)

我在Python3中遇到了同样的问题。

此代码适用于我:

df = pd.read_csv('', sep='‰', engine='python', encoding='utf-8')