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

Python Pandas 如何删除CSV文件中的指定行或按索引删除行

问题原因

你写的代码无法生效的核心原因是:iterrows()返回的每一行produto是原DataFrame的副本,对副本做删除操作不会修改原数据,完全达不到修改CSV的效果。另外pandas本身有成熟的批量行操作方法,不需要用遍历的方式删行,效率很低。

正确实现方式

第一步:读取CSV文件

import pandas as pd
# 你的CSV是空格分隔,所以sep设为\s+匹配多个空格,如果是常规逗号分隔CSV去掉sep参数即可
produtos = pd.read_csv("你的文件路径.csv", sep="\s+")

注意:pandas默认行索引从0开始计数,你给出的示例CSV中,ID为332的行对应索引是1,第三行ID为112的行对应索引是2。

方法1:按行索引删除指定行

用pandas内置的drop方法即可实现:

# 示例:删除索引为1的行(对应ID为332的记录)
# inplace=True代表直接修改原DataFrame,也可以不加这个参数,把结果赋值给新变量
produtos.drop(index=1, inplace=True)

# 如果要同时删除多个索引的行,传索引列表即可
# 示例:删除索引0和2的行:produtos.drop(index=[0,2], inplace=True)

方法2:按指定条件删除行(更稳妥,不依赖索引位置)

如果不想依赖行索引,要删除符合指定条件的行,比如直接删ID为332的记录:

# 写法1:布尔索引筛选保留符合条件的行
produtos = produtos[produtos["ID"] != 332]

# 写法2:结合drop方法实现
produtos.drop(index=produtos[produtos["ID"] == 332].index, inplace=True)

第三步:保存修改结果到CSV

# index=False代表不把pandas的行索引写入最终CSV
produtos.to_csv("修改后的文件路径.csv", index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:54:03