在分析数据之前,您必须先找到它。数据不会凭空出现在您的分析工具中;它存在于各种地方,等待着被收集。您可以将这一步想象成烹饪前的食材准备。根据您想制作什么(或者您想回答什么问题),您将需要不同地方找到的不同食材。本节介绍数据存在的常见位置。文件中存储的数据数据存储和共享最直接的方式也许就是以单个文件的形式。您可能已经遇到过许多此类文件。常见文件格式CSV(逗号分隔值): 这是一种非常常见的表格数据格式。想象一个保存为纯文本的简单电子表格。文件中的每一行代表一行数据,该行中的值通过逗号分隔。由于它们是纯文本,CSV 文件与不同软件之间具有广泛的兼容性。Excel 电子表格 (.xlsx, .xls): Microsoft Excel 文件在商业环境中普遍使用。它们可以将数据以表格形式存储在多个工作表中,还可以包含格式、公式和图表。虽然功能强大,但它们是专有格式,不过许多数据科学工具可以读取它们。JSON (JavaScript 对象表示法): JSON 是一种文本格式,常用于在 Web 服务器和 Web 浏览器之间传输数据,尤其通过 API(我们接下来会讨论)。它使用人类可读的文本来传输由属性-值对和数组数据类型组成的数据对象。它不如 CSV 表格化,但对于表示更复杂、嵌套的结构很灵活。这些文件可能从网站下载,作为电子邮件附件接收,由其他软件生成,或存储在共享网络驱动器上。对于许多初级数据科学任务,您会从加载这些文件类型之一的数据开始。数据库中的数据组织通常在数据库中存储大量运营数据。数据库是数据的有组织集合,通常以电子方式从计算机系统中存储和访问。可以将数据库想象成一个高度结构化的数字文件柜。它不使用简单的文件,而是使用专用软件(数据库管理系统或 DBMS)来高效地存储、管理和检索数据。"* 关系型数据库: 这是您会听到的一种常见类型。它们将数据存储在带有预定义列(属性)和行(记录)的表中,类似于电子表格,但对于管理不同表之间的关系(例如,将 Customers 表与 Orders 表关联)功能更强。与这些数据库交互通常涉及使用一种名为 SQL(结构化查询语言)的语言。虽然您不需要立即成为 SQL 专家,但了解数据库是许多情形下数据的主要来源是件好事。"从数据库访问数据通常需要特定的连接详情(例如地址、用户名、密码),并且通常涉及编写查询以请求您需要的确切数据片段。通过 API 获取数据API,即应用程序编程接口,是一套规则和协议,允许不同的软件应用程序相互通信和交换数据。想象一下您想获取伦敦当前天气。与其尝试直接读取天气服务中的复杂系统,该服务可能会提供一个 API。您的程序可以向特定的 API 网址(一个端点)发送请求,可能指定“伦敦”,然后 API 将返回当前天气数据,通常以 JSON 格式。许多网络服务提供 API 以访问其数据:社交媒体平台(例如 Twitter/X)金融数据提供商(例如股票价格)政府机构(例如人口普查数据、交通时刻表)地图服务(例如 Google 地图)使用 API 通常需要了解如何发出特定的网络请求,有时还需要获取访问密钥或令牌进行身份验证。它们是直接从源获取动态、最新数据的一种有效方式。网页数据(网络爬取)有时,您想要的数据在网站上可见,但无法通过便捷的文件下载或 API 获得。在这种情况下,有时可以编写代码自动提取直接来自网页 HTML 结构的信息。这个过程称为网络爬取或网络数据收集。虽然有用,但应谨慎对待网络爬取:合法性和道德: 在爬取之前,请务必查看网站的服务条款(通常在 robots.txt 文件或“使用条款”页面中找到)。过度的爬取可能使网站服务器过载,爬取私人或受版权保护的数据可能是非法的。脆弱性: 网站布局经常变化。为特定结构构建的爬取工具如果网站更新,可能会失效。对于初学者,从文件、数据库或定义明确的 API 获取数据通常更实际。其他潜在来源数据也可能来自不太常见或更专业的来源:传感器: 物联网 (IoT) 设备、科学仪器和环境监测器生成数据流。调查: 通过问卷直接从个人收集的数据。开放数据门户: 许多政府、研究机构和组织维护公共门户,免费共享数据集(例如美国 data.gov、Kaggle 数据集)。了解数据可能来自何处是第一步。接下来的一个任务,我们很快就会介绍,是如何真正将这些数据导入您的分析环境——这个过程通常称为数据导入或加载。您选择的来源将很大程度上取决于您要解决的问题以及可用的数据。