当前位置: 首页 > ds >正文

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

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 csvwith 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文件并计算每列的平均值
http://www.xdnf.cn/news/18157.html

相关文章:

  • [安洵杯 2019]Attack
  • Win11更新0x80073712错误解决方法
  • Java 中重载与重写的全面解析(更新版)
  • vscode的使用
  • 10.从开始写LINUX内核——时钟中断
  • 12分区南排烟机,多线模块没电
  • nflsoi 8.16 题解
  • day42_2025-08-16
  • Windows MCP.Net:基于.NET的Windows桌面自动化MCP服务器深度解析
  • 第3章现象表:比较顺序表和链表
  • 记录 GMS 认证相关条件
  • Leetcode 14 java
  • A*寻路算法:原理、实现与优化指南
  • 【Java笔记】synchronized
  • SpringBoot学习日记(九)
  • 游戏客户端性能测试总结
  • 【渗透实战】无下载器环境(curl/wget)下玩转 Metasploit 自动利用
  • [创业之路-550]:公司半年度经营分析会 - 解决方案汇总
  • “preinstall“: “npx only-allow pnpm“
  • WrenAI部署,解决发送消息报错:failed to create asking task
  • Day15 Docker
  • Java设计模式详细解读
  • uv - 基本使用
  • 三天速通 Vue+Flask+SQLite 项目+阿里云轻量应用级服务器【宝塔面板】②
  • autofit.js: 自动调整HTML元素大小的JavaScript库
  • 神经网络 常见分类
  • Java Stream sort算子实现:SortedOps
  • 《设计模式》装饰模式
  • AI可行性分析:数据×算法×反馈=成功
  • 基于GIS的无人机模拟飞行控制系统设计与实现