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

Pandas DataFrame是否有类似Series的remove/pop功能删除重复索引首行

Pandas 重复索引删除首个重复项解决方案

Pandas 没有和 Series remove 完全对应的同名属性/方法,你可以通过索引的duplicated()方法配合布尔索引快速实现需求,核心逻辑是标记重复索引的非末次出现项为重复,然后过滤掉这些条目即可。

完整实现代码

1. 构造示例DataFrame

import pandas as pd
import numpy as np

df = pd.DataFrame(
    data={
        "a": [1, 4, 7],
        "b": [2, 5, 9],
        "c": [3, 6, 10],
        "d": [np.nan, np.nan, np.nan]
    },
    index=[100, 200, 100]
)

2. 核心筛选逻辑

# keep='last'表示重复索引仅保留最后一次出现的条目
df = df[~df.index.duplicated(keep='last')]

3. 输出结果

执行后得到的df完全符合预期:

a  b   c   d
200   4  5   6 NaN
100   7  9  10 NaN

参数说明

  • df.index.duplicated() 会返回一个和索引长度相同的布尔数组,标记对应位置的索引是否为重复值
  • keep='last' 配置项指定重复值判定规则:仅最后一次出现的索引值不标记为重复,更早出现的重复索引都会被标记为True
  • 对布尔数组取反(~符号)后筛选DataFrame,就会删掉所有首次出现的重复索引条目,只保留末次重复条目和无重复的条目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 05:18:01