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

如何在Pandas中移除指定列重复值且保留所有数据行?

解决DataFrame重复列值保留首次、其余置空的问题

步骤1:构造示例DataFrame

先还原你的原始数据结构:

import pandas as pd

data = {
    'Country': ['China', 'China', 'China', 'United Kingdom', 'United Kingdom', 'United Kingdom'],
    'Country code': ['CN', 'CN', 'CN', 'UK', 'UK', 'UK'],
    'Port Name': ['Yantian', 'Shekou', 'Quanzhou', 'Plymouth', 'Cardiff', 'Bird port']
}
df = pd.DataFrame(data)

步骤2:实现重复值置空逻辑

使用duplicated()标记重复行,结合where()方法将重复位置的列值替换为空字符串,不会删除整行:

# 处理Country列:仅保留首次出现的值,重复行置空
df['Country'] = df['Country'].where(~df['Country'].duplicated(), '')
# 处理Country code列:仅保留首次出现的值,重复行置空
df['Country code'] = df['Country code'].where(~df['Country code'].duplicated(), '')

最终效果

处理后的DataFrame如下:

CountryCountry codePort Name
ChinaCNYantian
Shekou
Quanzhou
United KingdomUKPlymouth
Cardiff
Bird port

原理说明

  • df['列名'].duplicated():返回布尔Series,首次出现的行标记为False,后续重复行标记为True
  • ~:对布尔值取反,将首次出现的行转为True,重复行转为False
  • where()方法:保留True位置的原始值,将False位置的值替换为指定的空字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 21:51:14