gpt4 book ai didi

python - 将数据集从网页读取到 Pandas 数据框时出现 UnicodeDecodeError

转载 作者:太空宇宙 更新时间:2023-11-03 14:48:03 25 4
gpt4 key购买 nike

我正在尝试复制 MovieLens dataset放入 Python 中的 Pandas 数据框。

movies = pd.read_csv('http://files.grouplens.org/datasets/movielens/ml-100k/u.item', sep='|', names = ['movie_id', 'title'], usecols = range(2))
movies.head()

但是,当我执行上述操作时出现以下错误。


UnicodeDecodeError Traceback(最近调用最后)pandas._libs.parsers.TextReader._convert_tokens() 中的 pandas/_libs/parsers.pyx

pandas._libs.parsers.TextReader._convert_with_dtype() 中的 pandas/_libs/parsers.pyx

pandas._libs.parsers.TextReader._string_convert() 中的 pandas/_libs/parsers.pyx

pandas._libs.parsers._string_box_utf8() 中的 pandas/_libs/parsers.pyx

UnicodeDecodeError: 'utf-8' 编解码器无法解码位置 3 中的字节 0xe9:无效的连续字节

在处理上述异常的过程中,又发生了一个异常:

UnicodeDecodeError Traceback(最近调用最后) 在 () 8个 9---> 10 部电影 = pd.read_csv(' http://files.grouplens.org/datasets/movielens/ml-100k/u.item ', sep='|', names = ['movie_id', 'title'], usecols = range(2)) 11 电影.head()

/usr/local/lib/python3.5/dist-packages/pandas/io/parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype,引擎,转换器,true_values,false_values,skipinitialspace,skiprows,nrows,na_values,keep_default_na,na_filter,verbose,skip_blank_lines,parse_dates,infer_datetime_format,keep_date_col,date_parser,dayfirst,iterator,chunksize,compression,thousands,decimal,lineterminator,quotechar,引用, escapechar,注释,编码,方言,tupleize_cols,error_bad_lines,warn_bad_lines,skipfooter,skip_footer,双引号,delim_whitespace,as_recarray,compact_ints,use_unsigned,low_memory,buffer_lines,memory_map,float_precision) 第703章 704--> 705 返回 _read(文件路径或缓冲区,kwds) 706 第707章

/usr/local/lib/python3.5/dist-packages/pandas/io/parsers.py in _read(filepath_or_buffer, kwds) 449 450 尝试:--> 451 数据 = parser.read(nrows) 452终于: 第453章

/usr/local/lib/python3.5/dist-packages/pandas/io/parsers.py in read(self, nrows) 第1063章 1064-> 1065 ret = self._engine.read(nrows) 1066 1067 如果 self.options.get('as_recarray'):

/usr/local/lib/python3.5/dist-packages/pandas/io/parsers.py in read(self, nrows) 1826 def 读取(自身,nrows=无): 1827 尝试:-> 1828 数据 = self._reader.read(nrows) 1829 除了 StopIteration: 1830 如果 self._first_chunk:

pandas._libs.parsers.TextReader.read() 中的 pandas/_libs/parsers.pyx

pandas._libs.parsers.TextReader._read_low_memory() 中的 pandas/_libs/parsers.pyx

pandas._libs.parsers.TextReader._read_rows() 中的 pandas/_libs/parsers.pyx

pandas._libs.parsers.TextReader._convert_column_data() 中的 pandas/_libs/parsers.pyx

pandas._libs.parsers.TextReader._convert_tokens() 中的 pandas/_libs/parsers.pyx

pandas._libs.parsers.TextReader._convert_with_dtype() 中的 pandas/_libs/parsers.pyx

pandas._libs.parsers.TextReader._string_convert() 中的 pandas/_libs/parsers.pyx

pandas._libs.parsers._string_box_utf8() 中的 pandas/_libs/parsers.pyx

UnicodeDecodeError: 'utf-8' 编解码器无法解码位置 3 中的字节 0xe9:无效的连续字节

我正在使用 Python 3 的 Jupyter notebook 工作。我该如何解决这个错误?

最佳答案

该文件不是 UTF-8 编码的。不过,我们可以做出合理的猜测,我们可以询问 chardet第三方库来帮助我们:

In [23]: import urllib, chardet

In [24]: url = 'http://files.grouplens.org/datasets/movielens/ml-100k/u.item'

In [25]: u = chardet.UniversalDetector()

In [26]: u.feed(urllib.request.urlopen(url).read())

In [27]: u.close()
Out[27]: {'confidence': 0.73, 'encoding': 'ISO-8859-1', 'language': ''}

In [28]: movies = pd.read_csv(url, sep='|', names = ['movie_id', 'title'],
usecols = range(2), encoding='iso-8859-1')

In [29]: movies.head()
Out[29]:
movie_id title
0 1 Toy Story (1995)
1 2 GoldenEye (1995)
2 3 Four Rooms (1995)
3 4 Get Shorty (1995)
4 5 Copycat (1995)

关于python - 将数据集从网页读取到 Pandas 数据框时出现 UnicodeDecodeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47945145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com