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

如何在Pandas DataFrame中删除两列错位重复值对应的行

实现方案

直接用pandas内置方法即可实现,代码逻辑清晰,不需要额外依赖:

import pandas as pd

# 原始数据构造
data = [['1044', '1924'], ['1044', '1926'], ['1044', '1927'], ['1044', '1928'], 
        ['1048', '1924'], ['1048', '1926'], ['1048', '1927'], ['1048', '1928'], 
        ['1051', '1924'], ['1051', '1926'], ['1051', '1927'], ['1051', '1928'], 
        ['1058', '']]  
df = pd.DataFrame(data, columns = ['Col1', 'Col2']) 

# 规则1实现:Col1(Date列)仅保留第一次出现的取值,重复位置置为空
df['Col1'] = df['Col1'].mask(df['Col1'].duplicated(), '')

# 规则2实现:删除对应行,两种场景按需选择
# 场景1:匹配你示例中提到的删除第3行需求,直接过滤所有Col2为1928的行
df = df[df['Col2'] != '1928']

# 场景2:如果是要删除每个原始Col1分组的最后一条记录,用下面的代码替代上面的场景1代码即可
# df = df.groupby('Col1', as_index=False, group_keys=False).apply(lambda x: x.iloc[:-1] if len(x) > 1 else x)

输出结果

按场景1代码执行后得到的最终DataFrame如下:

Col1Col2
10441924
1926
1927
10481924
1926
1927
10511924
1926
1927
1058

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 09:36:06