Python 读取多个 CSV 文件行数的技巧

CSV(Comma-Separated Values,即逗号分隔值)是一种广泛使用的数据格式,通常用于存储表格数据。Python 提供了强大的库来处理 CSV 文件,特别是 pandascsv。在这篇文章中,我们将讨论如何使用 Python 读取多个 CSV 文件的行数,并展示一些相关的代码示例。

基本概念

在开始之前,首先我们要了解 CSV 文件的基本结构。CSV 文件由多行文本组成,每一行代表一条记录,字段之间通过逗号分隔。例如,下面是一个简单的 CSV 文件的内容:

姓名,年龄,性别
张三,28,男
李四,22,女
王五,35,男

目录结构

在我们的示例中,假设我们有一个目录结构,如下所示:

data/
  ├── file1.csv
  ├── file2.csv
  └── file3.csv

读取 CSV 文件的行数

为了读取多个 CSV 文件的行数,我们将使用 pandas 库,这个库非常强大且易于使用。首先确保你已经安装了 pandas

pip install pandas

示例代码

在下面的代码中,我们将读取指定目录中的所有 CSV 文件,并计算每个文件的行数。

import pandas as pd
import os

# 设置 CSV 文件所在的目录
directory = 'data'

# 存储每个文件的行数
file_line_counts = {}

# 遍历目录中的文件
for filename in os.listdir(directory):
    if filename.endswith('.csv'):
        # 构建完整的文件路径
        file_path = os.path.join(directory, filename)
        
        # 读取 CSV 文件
        df = pd.read_csv(file_path)
        
        # 统计行数(减去一行表头)
        line_count = len(df)
        
        # 存储行数
        file_line_counts[filename] = line_count

# 打印每个文件的行数
print("CSV 文件行数统计:")
for file, count in file_line_counts.items():
    print(f"{file}: {count} 行")

代码解析

  1. 导入库:我们导入必须的库,包括 pandasos
  2. 设置目录:指定存储 CSV 文件的目录。
  3. 遍历目录:使用 os.listdir() 函数列出目录中的所有文件,并筛选出以 .csv 结尾的文件。
  4. 读取文件和计算行数:对每个 CSV 文件,我们使用 pd.read_csv() 简单地加载数据,并使用 len(df) 获取行数(注意这不包括表头)。
  5. 显示结果:最后输出每个文件的名称及其行数。

类图示意

在我们的代码设计中,可以对应一个简单的类图,以便更好地理解程序结构。以下是一个用 mermaid 语法表示的类图示意:

classDiagram
    class CSVFileReader {
        +str directory
        +dict file_line_counts
        +void read_files()
        +int count_lines(str filename)
    }

结果展示

运行上述代码后,您应该看到类似如下的输出:

CSV 文件行数统计:
file1.csv: 3 行
file2.csv: 2 行
file3.csv: 4 行

以上输出显示了每个 CSV 文件的行数,方便我们对数据进行进一步的分析。

结论

在这篇文章中,我们介绍了如何使用 Python 的 pandas 库读取多个 CSV 文件并统计它们的行数。通过简单的代码示例,我们能够快速获取每个文件的规模。这种技术在数据分析和数据预处理过程中特别有用,因为它提供了快速的文件检索和处理手段。

总之,掌握如何处理 CSV 文件的能力,在数据科学和数据分析职业生涯中无疑是非常重要的。希望本篇文章能够帮助您更好地理解和使用 Python 操作 CSV 文件的技巧。