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

基于Pandas提取指定列重构大型CSV文件的Python代码问询

处理大CSV文件并保留指定列的解决方案

Hey there! 针对你用Python 3.6.9 + Pandas处理6GB CSV、保留a/b/c/d列的需求,我整理了两种实用方案,兼顾内存效率和操作便捷性:

方案一:直接读取(内存充足时优先)

如果你的机器内存足够容纳整个数据集(比如16GB以上内存),直接读取后筛选列再保存是最省心的方式:

import pandas as pd

# 读取原始CSV文件
df = pd.read_csv("your_original_file.csv")

# 仅保留需要的列
filtered_df = df[["a", "b", "c", "d"]]

# 保存重构后的CSV,index=False避免写入多余的索引列
filtered_df.to_csv("your_new_file.csv", index=False)

方案二:分块读取(内存紧张时必备)

6GB的CSV可能会占满内存,这时候用分块读取逐段处理更稳妥,避免内存溢出:

import pandas as pd

# 设置分块大小,根据你的内存调整(比如每块10万行)
chunk_size = 100000
# 定义要保留的列
keep_columns = ["a", "b", "c", "d"]

# 逐块读取并处理
for i, chunk in enumerate(pd.read_csv("your_original_file.csv", chunksize=chunk_size)):
    # 筛选当前块的目标列
    filtered_chunk = chunk[keep_columns]
    # 第一块写入时保留表头,后续块追加时跳过表头
    filtered_chunk.to_csv("your_new_file.csv", index=False, mode="a", header=(i == 0))

额外小贴士

  • 如果你预处理阶段已经做了数据清洗,确保在筛选列前的预处理步骤也适配分块逻辑(如果用方案二的话)。
  • Python 3.6.9对应的Pandas版本建议用0.25.x或1.x系列,这些版本对chunksize和mode="a"的支持都很稳定,不会出现兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 08:23:11