我试图用“'”'作为分隔符。
data.to_csv(file_path, sep = '€')
然而,我收到错误:
TypeError: "delimiter" must be an 1-character string
我如何克服这个问题? 我必须使用欧元符号作为分隔符
答案 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')