Python 读取 CSV 文件的三种方法
### Python 读取 CSV 文件的三种方法 在日常的数据处理工作中,CSV(逗号分隔值)文件是一种非常常见的数据存储格式。由于其简单且易于理解的特点,CSV 被广泛应用于不同领域,如数据分析、数据挖掘等。Python 作为一种强大的编程语言,在处理 CSV 文件方面提供了多种方式。本文将详细介绍使用 Python 读取 CSV 文件的三种常见方法:使用 Numpy 库、Pandas 库以及 Python 内置的 csv 模块。 #### 方法一:使用 Numpy Numpy 是一个用于数值计算的 Python 库,它提供了一个高性能的多维数组对象以及一系列用于操作这些数组的工具。当需要快速高效地读取 CSV 文件时,可以考虑使用 Numpy。 **代码示例:** ```python import numpy as np # 定义 CSV 文件路径 path = "路径.csv" # 读取 CSV 文件 data = np.loadtxt(open(path, "rb"), delimiter=",", skiprows=n, usecols=[2, 3]) # 解释参数 # - `delimiter`:指定字段间的分隔符,默认为逗号。 # - `skiprows`:跳过的初始行数,默认为0,常用来跳过表头。 # - `usecols`:读取的列索引列表,如 `[2, 3]` 表示只读取第 3 和第 4 列。 print(data) ``` **注意事项:** - Numpy 的 `loadtxt` 函数适合处理结构化数据,但不太适合读取含有非数字类型的 CSV 文件。 - 当 CSV 文件较大或结构复杂时,推荐使用更灵活的库如 Pandas。 #### 方法二:使用 Pandas Pandas 是基于 Numpy 的一种工具,该工具是为了便于进行数据分析和探索而创建的。Pandas 提供了 `DataFrame` 和 `Series` 这两种数据结构来方便用户处理数据。 **代码示例:** ```python import pandas as pd # 定义 CSV 文件路径 path = r'C:\Users\lenovo\Desktop\parttest.csv' # 读取 CSV 文件 data = pd.read_csv(path, sep=',', header='infer', usecols=[5]) # 解释参数 # - `sep`:字段分隔符,默认为逗号。 # - `header`:指定表头所在的行号,'infer' 表示自动检测表头。 # - `usecols`:读取的列索引列表,如 `[5]` 表示只读取第 6 列。 print(data) ``` **注意事项:** - Pandas 的 `read_csv` 函数非常强大,支持更多参数选项,如缺失值处理、日期解析等。 - 当需要对 CSV 文件进行更复杂的预处理时,推荐使用 Pandas。 #### 方法三:使用 Python 标准库 csv 模块 Python 自带的 `csv` 模块也可以用来读取 CSV 文件。它提供了一种更加底层的方式来处理 CSV 文件,可以更好地控制读写过程。 **代码示例:** ```python import csv # 定义 CSV 文件路径 path = 'C:\\Users\\lenovo\\Desktop\\parttest.csv' # 初始化空列表用于存放数据 data = [] # 打开并读取 CSV 文件 with open(path) as csvfile: csv_reader = csv.reader(csvfile) # 创建 CSV 读取器 # header = next(csv_reader) # 读取表头 for row in csv_reader: # 遍历每一行 data.append(row[5]) # 只保留特定列的数据 print(data) # 或者使用 DictReader,利用第一行为标签 with open(path) as csvfile: reader = csv.DictReader(csvfile) column = [row['weight'] for row in reader] # 选取 'weight' 列的数据 print(column) ``` **注意事项:** - 使用 `csv` 模块时,可以更加灵活地处理 CSV 文件,包括自定义分隔符、处理不规则的数据等。 - 该方法适用于需要高度定制化数据处理的情况。 根据具体的应用场景和个人需求,可以选择最适合自己的方法来读取 CSV 文件。例如,如果追求效率且数据结构相对简单,则可以考虑使用 Numpy;如果需要进行复杂的数据处理,则推荐使用 Pandas;而对于需要完全自定义数据处理流程的情况,则建议使用 Python 内置的 `csv` 模块。
- 粉丝: 2w+
- 资源: 2127
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助