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

使用pandas删除DataFrame中指定列值第二次出现后的所有行

实现方案

核心思路:先定位所有分隔符---的出现位置,取第二次出现的索引,直接切片保留该索引之前的所有行即可。

完整代码

import pandas as pd

# 读取原始文件
dl = pd.read_csv('Underlying Cause of Death, 1999-2019(3).txt', sep = '\t')

# 定位所有包含分隔符---的行(自动忽略值前后的空格)
sep_indexes = dl[dl.apply(lambda row: row.astype(str).str.strip().eq('---').any(), axis=1)].index

# 确保存在至少2次分隔符出现
if len(sep_indexes) >= 2:
    # 取第二次出现的索引,保留该索引之前的所有行;如果要保留第二次的---本身,改为sep_indexes[1]+1
    dl = dl.iloc[:sep_indexes[1]]

# 输出结果
dl.to_csv('test.csv', index = False)

代码说明

  • 用str.strip()处理单元格值前后的空格,避免原文件中---带多余空格导致匹配失败的问题
  • sep_indexes存储了所有出现分隔符的行索引,从0开始计数,sep_indexes[1]就是第二次出现的位置
  • 增加了长度判断逻辑,避免文件中分隔符不足2次时触发索引报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 00:27:03