使用Python将CSV数据加载到字典中

2025年1月5日 | 阅读6分钟

Python 是当今最流行的语言。它广泛应用于机器学习、人工智能和数据科学。

数据分析中的一项常见任务是从外部源(如 CSV 文件)加载数据,并将其组织成结构化格式以供进一步分析。本文将探讨如何使用 Python 将 CSV 数据加载到字典中,为初学者提供分步指南。

Load CSV Data into a Dictionary Using Python

但在深入研究将 CSV 数据加载到字典的步骤之前,让我们先了解一下什么是 CSV 数据,以及为什么我们需要将 CSV 数据加载到字典中。

什么是 CSV 文件?

CSV(逗号分隔值)是一种广泛使用的纯文本格式,用于存储表格数据。它提供了一种简单灵活的方式将信息组织成行和列,其中每一行表示为一行,行内的值用逗号分隔。CSV 的简单结构使其与各种电子表格应用程序和数据库系统兼容,从而可以轻松地在不同平台之间进行数据交换。由于其易用性,CSV 文件可以使用多种编程语言轻松创建、读取和操作,使其成为数据分析、数据导入/导出过程和数据交换场景的首选。该格式的多功能性和用户友好性使其在数据管理和分析领域具有持久的重要性。

什么是字典?

字典是一种无序的数据集合,以键值对的形式组织。它是一种通用且动态的数据结构,可以高效地存储和检索信息。字典中的每个键都必须是唯一的,并与特定的值相关联。

将字典加载到字典中的目的是什么?

Python 使得以易于访问和操作的方式构建表格数据成为可能。这是通过将 CSV 数据加载到字典中来实现的。每个 CSV 文件行随后表示为一个字典,其中键对应于列名,值表示每个单元格中的数据。这种方法可以轻松地组织和操作信息。字典提供了一种灵活的数据结构,可以快速检索和修改特定的数据点,使其成为各种数据分析任务的便捷工具。

分步指南

步骤 1:导入必要的库

在继续之前,必须导入所需的库。Python 内置的 CSV 模块使读取和写入 CSV 文件更加容易。

步骤 2:打开 CSV 文件

使用 open() 函数以读取模式打开 CSV 文件。请确保文件路径已正确指定。

步骤 3:创建 CSV 读取器对象

文件打开后,使用 csv.reader() 函数创建一个 CSV 读取器对象。您可以使用此对象遍历 CSV 文件的行。

步骤 4:提取列标题

从 CSV 文件的第一行提取列名,用于作为字典的键。

步骤 5:初始化一个空字典

要存储 CSV 文件,请创建一个空字典。

步骤 6:更新字典

利用提取的列名,遍历 CSV 文件的行,为每一行生成一个字典。

步骤 7:关闭文件

读取完毕后关闭文件是一个好习惯。

示例

让我们看一个使用上述步骤将 CSV 文件加载到字典中的示例程序。

程序

输出

Load CSV Data into a Dictionary Using Python

说明

此 Python 脚本利用 csv 模块读取名为 'contacts_to_import.csv' 的 CSV 文件中的数据。该文件以读取 ('r') 模式打开,使用该语句,确保文件得到妥善处理并在之后关闭。csv.DictReader() 用于将 CSV 文件的内容解释为字典,其中键对应于列标题,值表示每一行中的数据。随后的 for 循环遍历每一行;每一行都作为字典打印出来。

程序

输出

CSV data loaded into dictionary:
{'John': {'FNAME': 'John', 'LNAME': 'Downes', 'CELL': '555-444-0117', 'EMAIL': 'bungie@example.com', 'SALUTATION': 'Mr.', 'TITLE': 'Master Chief'}
'Sarah': {'FNAME': 'Sarah', 'LNAME': 'Smith', 'CELL': '555-999-8888', 'EMAIL': 'ssnith@example.com', 'SALUTATION': 'Ms.', 'TITLE': 'Senior Sales Rep'},}

说明

提供的 Python 代码概述了一个将 CSV 数据加载到字典中的程序。它首先导入 csv 模块以处理 CSV 文件。核心功能封装在一个名为 load_csv_into_dict 的函数中,该函数将 CSV 文件的路径作为其唯一参数。程序初始化一个空字典来存储 CSV 数据,并使用 with 语句以读取模式打开指定的文件。它创建一个 CSV 读取器对象来遍历文件的行,并从第一行提取列名。然后,程序遍历剩余的行,创建每个行的字典,其中列名作为键,行数据作为值。

示例

让我们考虑一个将 CSV 数据加载到字典中的示例程序。如果 CSV 文件存在,则否则,引发异常,指示文件未找到错误。

程序

输出

案例 1:错误:找不到文件 'contacts_to_impot.csv'。

案例 2:CSV 数据已加载到字典中

{'John': {'FNAME': 'John', 'LNAME': 'Downes', 'CELL': '555-444-0117', 'EMAIL': 'bungie@example.com', 'SALUTATION': 'Mr.', 'TITLE': 'Master Chief'}
'Sarah': {'FNAME': 'Sarah', 'LNAME': 'Smith', 'CELL': '555-999-8888', 'EMAIL': 'ssnith@example.com', 'SALUTATION': 'Ms.', 'TITLE': 'Senior Sales Rep'},}

说明

此程序与上面的程序相同,但我们添加了一个 try-except 块来处理将 CSV 数据加载到字典中的错误。

使用 Pandas 库

  1. read_csv(file_path) 将 CSV 文件读入 pandas DataFrame。
  2. set_index(df.columns[0]) 将第一列设置为 DataFrame 的索引。
  3. to_dict(orient='index') 将 DataFrame 转换为嵌套字典,其中索引成为键,其他列成为值。

程序

输出

[{'LNAME': 'Dodge', 'CELL': '555-888-8888', 'EMAIL': 'jdodge@example.com', 'SALUTATION': 'Mr.', 'TITLE': 'SVP of Sales'}, {'LNAME': 'Smith', 'CELL': '555-999-8888', 'EMAIL': 'ssnith@example.com', 'SALUTATION': 'Ms.', 'TITLE': 'Senior Sales Rep'}]

说明

使用 read.csv() 函数使用 CSV 文件创建了一个数据框,然后使用 to_dict() 函数将数据框转换为嵌套字典,其中索引成为键,其他列成为值。

结论

在 Python 中,有多种方法可以将 CSV 数据加载到字典中。

  • Pandas 库
  • csv 模块

在将 CSV 数据转换为字典时,您选择的方法取决于您的具体要求和您倾向使用的库。最终目标是将每一行转换为键值对,其中键通常是唯一标识符,例如 CSV 文件中的第一列。要确定最佳方法,请考虑文件结构、标题和个人编码偏好等因素。