我有一个输入 csv 文件,当我尝试对其进行一些操作并生成输出文件时,出现此错误。
起初,我收到“utf-8”错误,因此我使用以下命令搜索并检查了文件的编码:
import chardet
with open('1out_test.csv', 'rb') as rawdata:
result = chardet.detect(rawdata.read(100000))
result
输出:{'置信度':1.0,'编码':'ascii'}
然后我写了以下内容:
WORDS, N = ["aaaa", "tttt"], 1
pattern = (
rf"((?:\S+ +){{0,{N}}}\S*"
fr"\b(?:{'|'.join(map(re.escape, WORDS))})\b"
rf"\S*(?: +\S+){{0,{N}}})"
)
pd.read_csv("1out_test.csv", encoding='ascii', low_memory=False).assign(info=lambda x: x["remarks"].str.extract(pattern,flags= re.IGNORECASE, expand=False).fillna("NA")).to_csv("output.csv", index=False)
这又给了我同样的错误,但带有“ascii”: “ascii”编解码器无法解码位置 31 中的字节 0xe2:序数不在范围内(128)
注意:在这两个错误中,位置 31 是相同的。
尝试更换
pd.read_csv("1out_test.csv", encoding='ascii', low_memory=False).assign(info=lambda x: x["remarks"].str.extract(pattern,flags= re.IGNORECASE, expand=False).fillna("NA")).to_csv("output.csv", index=False)
与:
pd.read_csv("1out_test.csv", encoding='utf-8', low_memory=False).assign(info=lambda x: x["remarks"].str.extract(pattern,flags= re.IGNORECASE, expand=False).fillna("NA")).to_csv("output.csv", index=False)