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

如何使用Pandas对比并删除CSV文件中的指定行

基于Pandas的CSV重复表头行清理方案

原有代码问题排查

你给出的代码存在两处核心错误:

  1. 语法错误:Python中判断相等需要使用双等号==,单等号=是赋值操作,运行会直接触发语法报错
  2. 逻辑错误:df[df.name = "title"]的逻辑是仅保留name列为title的行,会直接删除所有正常数据和description行,和需求完全不符

完整实现代码

import pandas as pd

# 读取文件时不自动识别表头,避免第一行title被默认设为列名
df = pd.read_csv(file, header=None)

# 找到第一次出现title、description的行索引
first_title_pos = df[df.isin(['title']).any(axis=1)].index[0]
first_desc_pos = df[df.isin(['description']).any(axis=1)].index[0]
reserved_pos = {first_title_pos, first_desc_pos}

# 过滤逻辑:保留首次出现的title、description行,其余同类行直接删除,同时保留所有正常数据行
df = df[df.apply(lambda x: x.name in reserved_pos or not x.isin(['title', 'description']).any(), axis=1)]

# 可选操作:如果需要把第一行title设为DataFrame的列名,取消注释下面两行代码即可
# df.columns = df.iloc[0]
# df = df[1:].reset_index(drop=True)

# 导出处理后的文件
df.to_csv(file, index=False)

可调整说明

  • 如果title、description固定出现在某一列(比如第一列),可以把匹配逻辑改为df[df[0] == 'title'],匹配效率更高
  • 代码默认保留原始文件的行顺序,不会打乱原有数据的排布
  • 如果不需要保留description行,直接在reserved_pos中移除对应的变量即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 08:36:04