【问题标题】:How to read CSV file into Jupyter Notebook如何将 CSV 文件读入 Jupyter Notebook
【发布时间】:2020-01-30 18:53:12
【问题描述】:

我在将 CSV 文件读入 Jupyter Notebook 时遇到问题。这是代码:

import pandas as pd
mpg = pd.read_csv('C:/Users/Ajibola/Documents/mpg.csv')
mpg.head()

这是我得到的错误:

File "<ipython-input-138-844bace16611>", line 1
    mpg = pd.read_csv('C:\Users\Ajibola\Documents\mpg.csv')
                     ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

在 PATH 加上 r 前缀后,我得到了错误:

---------------------------------------------------------------------------
UnicodeDecodeError                        Traceback (most recent call last)
<ipython-input-140-a1289650ba91> in <module>
----> 1 mpg = pd.read_csv(r'C:\Users\Ajibola\Documents\mpg.csv')
      2 mpg.head()

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, 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, quoting, doublequote, escapechar, comment, encoding, dialect, tupleize_cols, error_bad_lines, warn_bad_lines, delim_whitespace, low_memory, memory_map, float_precision)
    700                     skip_blank_lines=skip_blank_lines)
    701 
--> 702         return _read(filepath_or_buffer, kwds)
    703 
    704     parser_f.__name__ = name

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer, kwds)
    427 
    428     # Create the parser.
--> 429     parser = TextFileReader(filepath_or_buffer, **kwds)
    430 
    431     if chunksize or iterator:

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self, f, engine, **kwds)
    893             self.options['has_index_names'] = kwds['has_index_names']
    894 
--> 895         self._make_engine(self.engine)
    896 
    897     def close(self):

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in _make_engine(self, engine)
   1120     def _make_engine(self, engine='c'):
   1121         if engine == 'c':
-> 1122             self._engine = CParserWrapper(self.f, **self.options)
   1123         else:
   1124             if engine == 'python':

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self, src, **kwds)
   1851         kwds['usecols'] = self.usecols
   1852 
-> 1853         self._reader = parsers.TextReader(src, **kwds)
   1854         self.unnamed_cols = self._reader.unnamed_cols
   1855 

pandas/_libs/parsers.pyx in pandas._libs.parsers.TextReader.__cinit__()

pandas/_libs/parsers.pyx in pandas._libs.parsers.TextReader._get_header()

UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 0-1: invalid continuation byte

我已经在社区中寻找相关问题和答案,但没有取得任何进展。非常感谢您的回答。

【问题讨论】:

  • 你在什么操作系统上运行 jupyter?你确定它是 Windows 而不是在 linux 容器或远程/虚拟机中运行吗?我建议您使用 pathlib 而不是字符串来引用文件路径。另一个想法,它可能是你的 csv 文件中的一个奇怪的字符,你可能需要指定编码。您可以尝试在您的 read_csv 调用中添加类似 encoding="latin1" 的参数,但您必须弄清楚用于创建 CSV 的编码。
  • @Dan 我的错 - 谢谢你告诉我。
  • 非常感谢@dan。我已经解决了。我使用了错误的文件夹。傻我。
  • 如果这只是一个错字,您可能应该删除问题:/
  • 好的。对不起,我是新来的。

标签: python file csv jupyter


【解决方案1】:

标题是指数据集的列名。对于您可能遇到的某些数据集,标题可能完全丢失、部分丢失,或者它们可能存在,但您可能想要重命名它们。 enter link description here

希望这篇文章对你有帮助

【讨论】:

  • 请引用链接,以便读者了解该教程的哪个部分与这种情况相关。
【解决方案2】:

错误是抱怨“utf-8”无法解码文件中的数据。这可能是由于文件中的特殊字符造成的。尝试使用另一种编码(例如“utf-16”或“latin-1”)作为调用中的参数:

import pandas as pd
mpg = pd.read_csv('C:/Users/Ajibola/Documents/mpg.csv', encoding = 'utf-16')
mpg.head()

更多信息请参考:

pandas read csv看编码参数和python的使用方法standard encodings

【讨论】:

  • 非常感谢。我已经解决了。我使用了错误的文件夹。
【解决方案3】:

在与您的代码相同的文件夹中创建您的 .csv 文件。这将起作用

import pandas as pd
data = pd.read_csv('data.csv')
print(data)

【讨论】:

    【解决方案4】:
     import pandas as pd  
     mpg = pd.read_csv('C://Users//Ajibola//Documents//mpg.csv')
     mpg.head() 
    

    它会工作,因为它是一个 unicode 错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-09
      • 2020-11-30
      • 2020-09-09
      • 2020-06-09
      • 2022-01-15
      • 2019-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多