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

如何在Pandas中删除三列值全部相等的行?

删除Pandas DataFrame中指定多列值完全相等的行

要删除DataFrame中val1、val2、val3三列值全部相等的行,可通过以下方式实现:

示例数据

import pandas as pd

data = [
    ['A',2,2,2],
    ['B',2,2,3],
    ['C',3,3,3],
    ['D',4,2,2],
    ['E',5,5,2]
]

df = pd.DataFrame(data,columns=['name','val1','val2','val3'])
print("原始数据:")
print(df)

解决方案

提供两种简洁的实现方式,均可筛选出需要保留的行:

方法一:通过唯一值数量判断

nunique(axis=1)会计算每行的唯一值数量,若三列值完全相等,唯一值数量为1。取反即可筛选出目标行:

# 筛选val1、val2、val3不全相等的行
filtered_df = df[df[['val1','val2','val3']].nunique(axis=1) != 1]
print("\n处理后数据:")
print(filtered_df)

方法二:逐列比较相等性

用eq()方法逐列对比,判断三列值是否全部相等,再取反筛选:

# 生成三列值全相等的掩码
mask = df['val1'].eq(df['val2']) & df['val2'].eq(df['val3'])
# 筛选不满足条件的行
filtered_df = df[~mask]
print("\n处理后数据:")
print(filtered_df)

两种方法最终都会得到删除第0行和第2行后的结果:

name  val1  val2  val3
1    B     2     2     3
3    D     4     2     2
4    E     5     5     2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 02:58:08