如何在 Pandas 中读取文件夹中的所有 CSV 文件?

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

引言

在数据科学和分析领域,处理大型数据集是一项常见任务。很多时候,数据分布在多个 CSV 文件中,将它们有效地读取到 Pandas DataFrame 中对于简化分析至关重要。在本文中,我们将探讨如何使用强大的 Pandas 库读取文件夹中的所有 CSV 文件,为您提供分步指南和最佳文件处理技巧。

导入必要的库

在深入了解读取 CSV 文件的细节之前,导入所需的库至关重要。Pandas 是数据操作的核心,因此请先导入它以及其他相关库。

列出文件夹中的文件

第一步是获取目标文件夹中所有 CSV 文件的列表。Python 中的 os 模块在此任务中非常有用。使用 os.listdir() 函数获取指定目录中所有文件的列表。

确保您将 /path/to/your/folder 替换为包含 CSV 文件的实际文件夹路径。列表推导式会过滤掉非 CSV 文件,只留下相关的文件。

将 CSV 文件读取到 Pandas DataFrame 中

现在您已经拥有了 CSV 文件列表,下一步是循环遍历它们并将每个文件读取到 Pandas DataFrame 中。您可以使用循环或列表推导式来实现此目的。

这里,os.path.join() 用于为每个 CSV 文件创建完整的文件路径,确保跨不同操作系统的兼容性。

连接 DataFrames

一旦您有了每个 CSV 文件的单独 DataFrame,下一步就是将它们连接成一个单一的 DataFrame。Pandas 提供了 pd.concat() 函数来实现此目的。

ignore_index=True 参数可确保生成的 DataFrame 具有连续的索引,而不会保留原始 DataFrame 的单独索引。

处理标题和索引

在某些情况下,CSV 文件可能包含您想保留的标题或索引。您可以自定义读取过程来处理这种情况。

根据您的具体要求调整 header 和 index_col 参数。将 header=None 设置为将导致自动命名列。

处理缺失值

数据完整性至关重要,处理缺失值是常见的预处理步骤。Pandas 提供了各种方法来处理缺失数据,例如 dropna()、fillna() 或插值方法。

选择与您的分析目标和数据集特征相符的方法。

性能考虑

在处理大量 CSV 文件或大型数据集时,优化代码以提高性能至关重要。考虑使用 dask 库进行并行处理和改进内存管理。

dask 支持惰性求值,可以并行处理多个 CSV 文件,从而显著缩短总体执行时间。

代码实现

代码

输出

Merged DataFrame:
     Name  Age    Country
0    John   25        USA
1   Alice   30     Canada
2     Bob   22         UK
3     Eva   28    Germany
4  Charlie   35        USA
5  Sophie   27     France
6   David   40  Australia
7    Emma   32      Spain

结论

在这份详尽的指南中,我们探讨了使用 Pandas 读取文件夹中多个 CSV 文件的过程。从导入必要的库、列出文件夹中的文件到将它们读取到 Pandas DataFrame 中,我们涵盖了该过程的每一步。此外,我们还讨论了连接 DataFrame、处理标题和索引、处理缺失值以及使用 dask 库优化性能的技术。

高效处理多个 CSV 文件是任何数据科学家或分析师的基本技能,掌握这些技术无疑将增强您处理各种大型数据集的能力。通过遵循这些步骤,您可以简化工作流程,并在 Pandas 的数据操作和分析功能中发挥最大作用。