Python 读取 CSV 文件并删除前五列

发布于:2025-08-17 ⋅ 阅读:(21) ⋅ 点赞:(0)

Python 读取 CSV 文件并删除前五列

在 Python 中删除 CSV 文件的前五列有两种常用方法:使用 pandas 库(推荐)或内置的 csv 模块。以下是详细代码示例:

方法 1:使用 pandas 库(高效简洁)
import pandas as pd

# 读取 CSV 文件
df = pd.read_csv('input.csv')

# 删除前五列(列索引 0-4)
df = df.iloc[:, 5:]

# 保存处理后的数据到新文件
df.to_csv('output.csv', index=False)

代码解析

  1. pd.read_csv() 读取 CSV 文件为 DataFrame
  2. iloc[:, 5:] 使用位置索引选择第 5 列之后的所有列(: 表示所有行)
  3. index=False 参数避免输出行索引列
  4. 处理百万行数据仅需几秒,适合大型文件
方法 2:使用 csv 模块(无需额外依赖)
import csv

with open('input.csv', 'r') as infile, open('output.csv', 'w', newline='') as outfile:
    reader = csv.reader(infile)
    writer = csv.writer(outfile)
    
    for row in reader:
        # 删除前五列(保留索引5及之后的元素)
        writer.writerow(row[5:])

代码解析

  1. 使用 csv.reader 逐行读取文件
  2. row[5:] 对每行进行切片操作,跳过前 5 个元素
  3. newline='' 防止输出文件出现空行
  4. 内存效率高,适合逐行处理超大文件
注意事项
  1. 列索引:前五列对应索引 0-4,保留列从索引 5 开始
  2. 列名处理:pandas 方法会自动保留剩余列的标题
  3. 异常处理:可添加 try-except 块处理文件不存在或格式错误
  4. 内存优化:对于超大文件(>1GB),推荐使用 chunksize 参数分块处理:
# pandas 分块处理示例
chunk_iter = pd.read_csv('big_file.csv', chunksize=10000)
for chunk in chunk_iter:
    chunk.iloc[:, 5:].to_csv('output.csv', mode='a', header=False)

提示:pandas 方法代码更简洁且支持复杂数据处理,推荐作为首选方案。


相关问题

  1. 如何仅删除 CSV 文件中的特定列(非连续列)?
  2. 处理包含中文的 CSV 文件时需要注意哪些编码问题?
  3. pandas 读取 CSV 时如何跳过不规则的行?
  4. 如何在不加载到内存的情况下处理超大型 CSV 文件?
  5. 删除列后如何保留原始数据类型并进行类型转换?
: Python 读取CSV指定列使用pandas读取CSV指定列示例
python读取csv文件使用内置的csv模块
使用Python读取CSV文件并计算每列的平均值

网站公告

今日签到

点亮在社区的每一天
去签到