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

如何快速将超大型CSV文件读取为Pandas DataFrame?已用参数仍耗时过久

优化pd.read_csv读取100万行CSV的速度方案

针对你当前的读取参数,以下是几个直接有效的优化方向,按优先级排序:

1. 显式指定日期格式,替代自动推断

infer_datetime_format=True虽比不推断快,但直接指定Timestamp的格式能彻底跳过推断步骤,大幅降低日期解析耗时。根据你提到的Timestamp包含秒数,替换成对应格式(比如常见的%Y-%m-%d %H:%M:%S,请根据实际格式调整):

pd.read_csv(file,
            index_col='Timestamp',
            engine='c',
            na_filter=False,
            parse_dates=['Timestamp'],
            date_parser=lambda x: pd.to_datetime(x, format='%Y-%m-%d %H:%M:%S'),
            low_memory=False)

pandas 1.0+版本可直接用更简洁的写法:

pd.read_csv(file,
            index_col='Timestamp',
            engine='c',
            na_filter=False,
            parse_dates={'Timestamp': {'format': '%Y-%m-%d %H:%M:%S'}},
            low_memory=False)

2. 预定义所有列的数据类型

low_memory=True会分块推断列类型,既耗时又可能导致同一列出现混合类型。提前指定dtype参数,让pandas直接按指定类型读取,避免类型推断开销:

  • 数值列:精度允许时用int32/float32代替默认的int64/float64,减少内存占用同时加快读取;
  • 字符串列:重复值较多时用category类型,大幅降低内存和读取时间;
    示例:
pd.read_csv(file,
            index_col='Timestamp',
            engine='c',
            na_filter=False,
            parse_dates={'Timestamp': {'format': '%Y-%m-%d %H:%M:%S'}},
            dtype={
                'column1': 'int32',
                'column2': 'float32',
                'column3': 'category'
            },
            low_memory=False)

3. 只读取需要的列

如果不需要CSV中的所有列,用usecols参数指定目标列,减少IO读取的数据量,对速度提升非常明显:

pd.read_csv(file,
            index_col='Timestamp',
            engine='c',
            na_filter=False,
            parse_dates={'Timestamp': {'format': '%Y-%m-%d %H:%M:%S'}},
            dtype={...},
            usecols=['Timestamp', 'column1', 'column2'],
            low_memory=False)

4. 尝试替代库(适合更大规模数据)

如果上述优化后仍不够快,可以尝试多线程/分布式读取库:

  • Modin:直接替换pandas导入,自动利用多线程读取,代码几乎不变:
    import modin.pandas as pd
    pd.read_csv(...)  # 用你优化后的参数
    
  • Dask:适合超大规模数据,分块读取处理,内存占用更低:
    import dask.dataframe as dd
    df = dd.read_csv(file, ...).compute()  # compute()转为pandas dataframe
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 07:01:16