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

如何移除Python DataFrame中存在跨列重复值的行

解决DataFrame保留所有值唯一行的问题

核心思路

对DataFrame的每一行,检查该行所有列的元素是否全部唯一,筛选出符合条件的行即可。

实现步骤

  1. 导入pandas并创建示例DataFrame
import pandas as pd

data = {
    'ID': [0, 1, 2, 3],
    'a': [1, 2, 1, 0],
    'b': [3, 8, 3, 1],
    'c': [4, 8, 10, 3],
    'd': [9, 3, 12, 0]
}
df = pd.DataFrame(data)
  1. 筛选符合条件的行
    使用apply遍历每一行,结合nunique()判断该行唯一值数量是否等于列数:
# 筛选所有元素唯一的行
filtered_df = df[df.apply(lambda row: row.nunique() == len(row), axis=1)]

或者用集合判断(逻辑等价,适合无缺失值的场景):

filtered_df = df[df.apply(lambda row: len(set(row)) == len(row), axis=1)]
  1. 查看结果
    运行后filtered_df的输出为:
ID  a   b   c   d
0   0  1   3   4   9
2   2  1   3  10  12

说明

  • row.nunique():返回该行中唯一值的数量,会自动忽略重复元素
  • axis=1:指定apply按行遍历
  • 两种方法都能实现需求,nunique()更适合包含缺失值(NaN)的场景,因为它会正确识别NaN的唯一性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 06:35:17