加载数据

已完成

在本单元结束时,你应该能轻松地将文件中的数据加载到 pandas DataFrame 中,并对可能出现的任何问题进行故障排除。

由于 pandas DataFrame 是二维数据结构,它们类似于逗号分隔值 (CSV) 文件等平面文件格式。 CSV 文件是电子表格和数据库最常见的导入和导出格式。

通过添加从 CSV 文件到 DataFrames 的轻松转换,pandas 提供一种快捷函数,可将 CSV 文件的内容加载到 DataFrames。 此函数比本机 Python CSV 库更方便。 让我们熟悉 pandas.read_csv,因为我们经常使用它。

在讨论了 pd.read_csv 的便利性之后,立即遇到错误似乎很奇怪。 关于出错的线索在错误消息的最后一行:

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

CSV 文件中的数据使用读取此文件的默认 Unicode 标准(UTF-8)编解码器无法理解的字符。 请记住,这是现实世界的数据,而现实世界十分混乱。

现在可以使用 pd.read_csv 文档,以寻找下一步要尝试的想法。

亲自试一试

使用 Visual Studio Code IntelliSense 获取有关如何使用 pd.read_csv 的信息。


提示 (展开以显示)

如果忘记了语法,请参阅本部分开头的讨论。

df = pd.read_csv?

应显示此输出(请注意,这是简化版本):

Signature:
pd.read_csv(
    filepath_or_buffer: Union[str, pathlib.Path, IO[~AnyStr]],
    sep=',',
    delimiter=None,
    header='infer',
    ...
)
Docstring:
Read a comma-separated values (csv) file into DataFrame.

Also supports optionally iterating or breaking of the file into chunks.

Additional help can be found in the online docs for `IO Tools `_.

Parameters

...

Returns
-------
DataFrame or TextParser
    A comma-separated values (csv) file is returned as two-dimensional
    data structure with labeled axes.

See Also
--------
to_csv : Write DataFrame to a comma-separated values (csv) file.
read_csv : Read a comma-separated values (csv) file into DataFrame.
read_fwf : Read a table of fixed-width formatted lines into DataFrame.

Examples
--------
>>> pd.read_csv('data.csv')  # doctest: +SKIP
File:      c:\users\sarah\appdata\local\programs\python\python38-32\lib\site-packages\pandas\io\parsers.py
Type:      function




此函数有很多参数。 直观命名 encoding 的参数接受 str Python 标准编码列表中的输入。 我们将在此处使用 'latin1'

注意

虽然数据科学从业人员熟悉所遇到的编码,但选择正确的编码有时会经历试错的过程。 即使对专业人士而言也是如此!

df = pd.read_csv('Data/USDA-nndb.csv', encoding='latin1')

这次没有错误消息,因此 'latin1' 可正常工作,我们成功地将 CSV 文件读入到 df DataFrame。

要点

有一种说法是,学术界和现实世界的数据科学的区别在于,学术界喜欢对整洁的数据集进行复杂的分析,而现实世界通常对更混乱的数据集进行更简单的分析。 即使只是在加载数据时遇到困难,故障排除也是成功的数据科学的一个重要部分。