有一个包含三列数据帧的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
正确处理此错误。
那么,我该如何打开这个文件并获取数据框?
答案 0 :(得分:3)
试试这个:
在文本编辑器中打开cvs文件,并确保以utf-8格式保存。
然后正常读取文件:
import pandas
csvfile = pandas.read_csv('file.csv', encoding='utf-8')
答案 1 :(得分:0)
我会尝试使用内置的csv阅读器,然后将数据放入pandas。
import csv
with open('eggs.csv', newline='') as csvfile:
spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
for row in spamreader:
print(', '.join(row))
如果这不起作用,那么至少你可以确认它是一个csv问题,而不是一个令人窒息的编码问题。
另一个建议是确保使用Python 3.x来处理比2.7更好的编码问题。
如果您可以提供样品,我可以自己测试并相应地更新我的答案。
答案 2 :(得分:0)
您可以尝试将其他选项编码为“ 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)