如何用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
相关产品推荐
相关产品推荐

