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

如何用Pandas过滤多列值全部相同的行?

解决办法

你可以用两种高效的方法实现需求:

方法一:计算每行唯一值数量

用nunique(axis=1)统计每行的唯一值个数,然后筛选出个数大于1的行:

import pandas as pd

# 构造示例DataFrame
data = {
    "column 1": ["A", "A", "C"],
    "column 2": ["A", "A", "A"],
    "column 3": ["A", "A", "B"],
    "column 4": ["A", "A", "A"]
}
df = pd.DataFrame(data)

# 筛选出存在多个唯一值的行
filtered_df = df[df.nunique(axis=1) > 1]

方法二:检查是否存在与首列不同的值

如果只需要判断该行是否有不同值,不需要统计具体数量,可以用ne(不等于)结合any(axis=1),这种方法在大数据集上可能更快:

# 比较每行所有元素与第一列元素是否不同,只要有一个不同就保留该行
filtered_df = df[df.ne(df.iloc[:, 0], axis=0).any(axis=1)]

两种方法都能得到你想要的结果,示例中都会保留第三行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 09:43:21