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

Pandas中仅对value为空且id重复的行去重并保留首行

解决方法

可以用Pandas的duplicated方法结合布尔掩码实现,步骤简单直接:

1. 构造示例数据(替换为你的实际DataFrame即可)

import pandas as pd

data = {
    'id': ['1', '1', '1', '1.1', '1.1', '1.2', '2', '2.1', '2.1.1', '1', '3', '3', '3.1'],
    'value': ['', '', '', 'some text', 'xxx', 'xxx', '', '', 'xxx', '', '', '', 'hi'],
    'more columns': ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm']
}
df = pd.DataFrame(data)

2. 核心逻辑实现

# 生成保留规则:仅过滤掉「value为空且是同一id重复出现的行」
mask = ~((df['value'] == '') & df.duplicated(subset='id', keep='first'))

# 应用规则得到结果
result_df = df[mask]

逻辑说明

  • df.duplicated(subset='id', keep='first'):标记同一id中除第一行外的所有重复行
  • 结合df['value'] == '',筛选出「value为空且属于同一id重复组」的行
  • 用~取反,得到需要保留的行:要么value非空,要么是同一id中value为空的第一行

输出结果

运行后result_df的内容如下:

id      value more columns
0       1                        a
3     1.1  some text            d
4     1.1        xxx            e
5     1.2        xxx            f
6       2                        g
7     2.1                        h
8  2.1.1        xxx            i
11      3                        k
12    3.1         hi            m

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 01:10:28