有一个 CSV 格式文件,有三列数据框。第三列有长文本。当我尝试使用pandas.read_csv
打开文件时,出现此错误消息
message : UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa1 in position 0: invalid start byte.
但是打开文件没有问题
with open('file.csv', 'r', encoding='utf-8', errors = "ignore") as csvfile:
我不知道如何将这些数据转换为数据帧,我不认为pandas.read_csv
正确处理这个错误。
所以,我怎么能打开这个文件,并得到 dataframe?
在文本编辑器中打开 cvs 文件,并确保将其保存为 utf-8 格式。
然后正常读取文件:
import pandas
csvfile = pandas.read_csv('file.csv', encoding='utf-8')
我会尝试使用内置的 csv 阅读器,然后将数据放入熊猫。
import csv
with open('eggs.csv', newline='') as csvfile:
spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
for row in spamreader:
print(', '.join(row))
如果这不起作用,那么至少你可以确认这是一个 csv 问题,而不是熊猫问题在编码上窒息。
另一个建议是确保您使用的 Pytn 3.x 处理编码问题比 2.7 更好。
如果您可以提供您的示例,我可以自己测试并相应地更新我的答案。
您可以尝试另一个选项编码为“ISO-8859-1”
在你的情况:
with open('file.csv', 'r', encoding = 'ISO-8859-1', errors = "ignore") as csvfile:
或者试试这个:
import pandas as pd
data_file = pd.read_csv("file.csv", encoding = "ISO-8859-1")
print(data_file)
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(23条)