You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何高效读取大型CSV文件指定列以缩短读取时间?

大CSV单列读取性能优化方案

以下是几种能进一步缩短单列读取时间的方法,按落地成本和性能提升排序:

1. 直接使用Python标准库csv读取(无额外依赖,轻量化)

绕开pandas的DataFrame构建开销,仅提取目标列的原始数据,适合不需要DataFrame结构的场景:

import csv

path = r"C:\my_path\my_csv.csv"
target_col = "my_specific_col"
col_data = []

with open(path, 'r', encoding='utf-8') as f:
    reader = csv.DictReader(f)
    for row in reader:
        col_data.append(row[target_col])

如果知道目标列的索引(比如第3列,索引从0开始),可以用csv.reader更高效:

import csv

path = r"C:\my_path\my_csv.csv"
col_index = 2  # 假设目标列是第3列
col_data = []

with open(path, 'r', encoding='utf-8') as f:
    reader = csv.reader(f)
    next(reader)  # 跳过表头
    for row in reader:
        col_data.append(row[col_index])

2. 优化Pandas的read_csv参数

在保留pandas DataFrame结构的前提下,通过参数减少不必要的开销:

  • 指定明确的dtype:避免pandas自动推断列类型的耗时,比如目标列是字符串就指定str,数值类型指定int64/float64:
import pandas as pd

path = r"C:\my_path\my_csv.csv"
target_col = "my_specific_col"
df = pd.read_csv(
    path,
    usecols=[target_col],
    header=0,
    dtype={target_col: str}  # 根据实际类型调整
)
  • 关闭low_memory:默认low_memory=True会分块推断列类型,可能增加耗时,明确列类型后可以关闭:
df = pd.read_csv(
    path,
    usecols=[target_col],
    header=0,
    low_memory=False
)
  • 确保使用C引擎:pandas默认用更快的C引擎,明确指定避免切换到Python引擎:
df = pd.read_csv(
    path,
    usecols=[target_col],
    header=0,
    engine='c'
)

3. 用Polars替代Pandas(高性能列式库)

Polars是专为大数据处理设计的库,读取速度远优于pandas,尤其是单列读取场景:

import polars as pl

path = r"C:\my_path\my_csv.csv"
target_col = "my_specific_col"
# 读取单列为Polars Series
series = pl.read_csv(path, columns=[target_col])
# 如需转成Pandas DataFrame/Series
df = series.to_pandas()

4. 预处理为Parquet列式存储(适合重复读取场景)

如果需要多次读取该数据集,一次性将CSV转成Parquet格式(压缩的列式存储),后续读取单列几乎瞬间完成:

第一次转换(仅需执行一次)

import pandas as pd

path = r"C:\my_path\my_csv.csv"
# 读取整文件转存为Parquet
df = pd.read_csv(path)
df.to_parquet(r"C:\my_path\my_data.parquet")

后续读取单列

df = pd.read_parquet(
    r"C:\my_path\my_data.parquet",
    columns=["my_specific_col"]
)

Parquet会按列存储数据,读取时仅加载目标列对应的块,性能提升非常显著。

内容的提问来源于stack exchange,提问作者abc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 01:20:23