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

如何删除pandas DataFrame中基于多列的重复及无效记录

pandas DataFrame无效行与重复行删除方案

实现逻辑

  • 第一步删除无效行:过滤掉col_1与col_2取值相等的行,对应你样例中标注unwanted的所有行
  • 第二步删除重复行:将col_3、col_4取值相同的行归为同一重复组,每组内按col_1的字典序计算秩,仅保留秩为1的行,实现去重,无需调用np.tril相关逻辑

完整代码

import pandas as pd

# 构造你的样例DataFrame
df = pd.DataFrame({
    'col_1': ['a','a','a','b','b','b','c','c','c'],
    'col_2': ['a','b','c','a','b','c','a','b','c'],
    'col_3': [1, 0.7, 0.5, 0.7, 1, 0.8, 0.5, 0.8, 1],
    'col_4': [1, 0.5, 0.3, 0.5, 1, 0.6, 0.3, 0.6, 1]
})

# 1. 过滤无效行
df = df[df['col_1'] != df['col_2']]

# 2. 按col3、col4分组用秩去重
df = df[df.groupby(['col_3', 'col_4'])['col_1'].rank(method='first') == 1].reset_index(drop=True)

print(df)

输出结果

col_1 col_2  col_3  col_4
0     a     b    0.7    0.5
1     a     c    0.5    0.3
2     b     c    0.8    0.6

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:45:04