【发布时间】:2016-04-01 20:35:16
【问题描述】:
我遇到了与提到的here 类似的问题,但建议的方法都不适合我。
我有一个中等大小的 utf-8 .csv 文件,其中包含很多非 ascii 字符。
我通过其中一列中的特定值拆分文件,然后我想将每个获得的数据帧保存为 .xlsx 文件,并保留字符。
这不起作用,因为我收到一个错误:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 7: ordinal not in range(128)
这是我尝试过的:
- 明确使用
xlsxwriter引擎。这似乎没有任何改变。 -
定义一个函数(如下)来更改编码并丢弃坏字符。这也不会改变任何事情。
def changeencode(data): cols = data.columns for col in cols: if data[col].dtype == 'O': data[col] = data[col].str.decode('utf-8').str.encode('ascii', 'ignore') return data 手动将所有攻击性字符更改为其他字符。仍然没有效果(在此更改后获得了引用的错误)。
-
将文件编码为
utf-16(我相信这是正确的编码,因为我希望之后能够从 excel 中操作文件)也无济于事。
我认为问题出在文件本身(因为 2 和 3),但我不知道如何解决它。我会很感激任何帮助。文件的开头粘贴在下面。
"Submitted","your-name","youremail","phone","miasto","cityCF","innemiasto","languagesCF","morelanguages","wiek","partnerCF","messageCF","acceptance-795","Submitted Login","Submitted From","2015-12-25 14:07:58 +00:00","Zózia kryś","test@tes.pl","4444444","Wrocław","","testujemy polskie znaki","Polski","testujemy polskie znaki","44","test","test","1","Justyna","99.111.155.132",
编辑
一些代码(其中一个版本,没有拆分部分):
import pandas as pd
import string
import xlsxwriter
df = pd.read_csv('path-to-file.csv')
with pd.ExcelWriter ('test.xlsx') as writer:
df.to_excel(writer, sheet_name = 'sheet1',engine='xlsxwriter')
【问题讨论】:
-
你试过
df.to_excel(path, encoding='utf8')吗? -
@Stefan 我有,谢谢你的提问。可以肯定的是,我又试了一次——就在现在。还是什么都没有。
标签: python excel pandas encoding utf-8