数据很少孤立存在。为了有用,它需要被存储、获取,并且通常在不同的人、程序或系统之间共享。想象一下,如果你试图与一个没有相同软件的人共享电子表格,或者将网站信息提取到你的分析工具中,会是怎样的情形。如果没有共通的数据结构方式,这些任务将异常困难。这就是标准数据格式的作用所在。它们提供了公认的组织数据的方式,以便数据能够被一致地理解。接下来,我们来了解几种数据科学中最常遇到的格式,尤其是在处理结构化或半结构化数据时。逗号分隔值 (CSV)CSV 是表格数据最简单、最常见的格式之一。顾名思义,CSV 文件存储的数据中,每行中的值由逗号分隔。可以把它想象成电子表格的纯文本版本。CSV 文件中的每一行通常代表一条数据记录。在每行中,逗号(有时也可能是其他字符,如制表符或分号,尽管逗号是默认的)作为分隔符,分隔对应列的单个数据点或字段。CSV 文件的第一行通常包含标题行,其中列出了列的名称。以下是一个小型 CSV 文件在基本文本编辑器中可能呈现的示例:Name,Age,City Alice,30,New York Bob,24,San Francisco Charlie,35,ChicagoCSV 为何有用?简洁: 对于小型文件,它以原始形式易于人阅读,且程序易于解析。兼容性: 几乎所有数据分析工具、电子表格程序(如 Microsoft Excel 或 Google Sheets)或编程语言都可以导入和导出 CSV 格式的数据。轻量: CSV 文件只是文本,与专有电子表格格式相比,它们相对较小。局限性:无数据类型信息: CSV 文件本身不存储关于列应被视为文本、数字还是日期的数据类型信息。导入软件必须推断这一点。扁平结构: CSV 最适合简单的扁平表格。表示嵌套或分层数据会很麻烦。分隔符问题: 如果实际数据包含逗号,则需要特殊处理(例如用引号将数据括起来)以避免混淆。尽管存在这些局限性,CSV 仍然是交换表格数据集的实用工具。JavaScript 对象表示法 (JSON)JSON 是另一种广泛使用的格式,在网络应用和 API(应用程序编程接口)中尤为常见。JSON 的设计目标是易于人阅读和编写,也易于机器解析和生成。与 CSV 严格的行列表格结构不同,JSON 使用人类可读的文本来传输由键值对和数组数据类型组成的数据对象。可以把它想象成使用标签(键)及其对应信息(值)来描述数据。这是 CSV 示例中的相同数据在 JSON 格式下可能呈现的样子:[ { "Name": "Alice", "Age": 30, "City": "New York" }, { "Name": "Bob", "Age": 24, "City": "San Francisco" }, { "Name": "Charlie", "Age": 35, "City": "Chicago" } ]让我们分析一下 JSON 结构:{} 花括号定义一个对象。对象包含键值对。[] 方括号定义一个数组(一个有序的值列表)。在此示例中,整个结构是一个对象数组,其中每个对象代表一个人。键(如 "Name"、"Age"、"City")是字符串,用双引号括起来。值可以是字符串 ("Alice")、数字 (30)、布尔值 (true 或 false)、数组,甚至是其他嵌套对象。这种嵌套能力使 JSON 在表示比 CSV 更复杂、分层的数据方面具有适应性。JSON 为何有用?适应性强: 自然处理嵌套和分层数据结构。Web 标准: 它是网络数据交换的事实标准,被 API 大量使用。可读性: 通常易于人阅读,尤其是在有缩进格式的情况下。数据类型: 隐式支持基本数据类型(字符串、数字、布尔值)。局限性:冗余: 对于简单的表格数据,它可能比 CSV 更冗余(使用更多字符),因为键在每条记录中都会重复。不适合纯表格: 尽管可行,但表示非常大的纯表格数据集可能不如 CSV 节省存储空间。数据库尽管 CSV 和 JSON 是常用于交换或存储中等规模数据集的文件格式,但数据库是专门为高效存储、管理和获取大量结构化数据而设计的系统。可以把数据库想象成一个高度有序的电子文件柜。数据不是以 CSV 或 JSON 等独立文件的形式存在(尽管数据库可以导入/导出这些格式),而是存储在数据库系统内部,通常以类似于电子表格的表格形式存在,但背后拥有更强大的能力。示例包括关系型数据库(如 PostgreSQL、MySQL、SQL Server),它们将数据组织成具有预定义关系的表格;以及 NoSQL 数据库(如 MongoDB、Cassandra),它们可能使用基于文档(类似于 JSON)、键值或其他结构。我们在此不会详述数据库的具体内容,但认识到它们是许多应用程序中存储和访问大规模数据的主要方式很重要。通常,数据科学项目的第一步是查询数据库以提取相关数据,可能将其保存为 CSV 或直接使用。其他格式尽管 CSV 和 JSON 非常常见,但你偶尔也会遇到其他格式:XML (可扩展标记语言): 与 JSON 目的相似(表示结构化数据),但使用标签(<tag>值</tag>),并且通常更冗余。在 JSON 兴起之前它更常见,尤其是在企业系统中。电子表格文件(.xlsx, .ods): 来自 Microsoft Excel 或 LibreOffice Calc 等程序的专有或标准化格式。这些文件不仅包含数据,还包含格式、公式、图表等。它们通常需要特定的软件或库才能直接读取。二进制格式(例如 Parquet、HDF5): 针对性能和存储效率进行了优化,特别适用于科学计算和大数据分析中使用的大型数值数据集。这些格式不能直接被人阅读。了解这些常见格式非常重要,因为收集数据通常涉及从这些来源之一读取。熟悉其结构(如 CSV 中的行/列或 JSON 中的键值对)有助于你在获得数据后开始处理。