加载数据
在本单元结束时,你应该能轻松地将文件中的数据加载到 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。
要点
有一种说法是,学术界和现实世界的数据科学的区别在于,学术界喜欢对整洁的数据集进行复杂的分析,而现实世界通常对更混乱的数据集进行更简单的分析。 即使只是在加载数据时遇到困难,故障排除也是成功的数据科学的一个重要部分。