You need to enable JavaScript to run this app. 基于指定公共列对Pandas DataFrame列表按keep='first'规则去重
优惠活动
大模型
产品
解决方案
定价
更多

基于指定公共列对Pandas DataFrame列表按keep='first'规则去重

Pandas DataFrame 列表按指定公共列组合去重方案

核心规则对齐

  • 输入为完成类型校验的列表tempDFList,列表内所有元素均为pandas.core.frame.DataFrame类型
  • 不要求列表内各DataFrame的列结构完全一致,仅要求公共包含Previous Pivot Price、Pivot Price两个关键列
  • 去重逻辑完全匹配Pandas原生drop_duplicates默认的keep='first'规则:相同关键列组合的DataFrame,仅保留列表中最早出现的实例,后续同组合的实例全部剔除
  • 参考场景说明:原始列表含3个单行DataFrame,列结构各有差异,前两个DataFrame的两个关键列取值均为0.86408、0.871180,属于重复组,仅保留第一个;第三个DataFrame的关键列组合与前者无重合,直接保留,最终输出列表共2个有效DataFrame

实现代码

# 记录已出现的关键列组合,避免重复判断
seen_keys = set()
filtered_result = []

for df in tempDFList:
    # 提取当前DataFrame对应的关键列组合值
    cur_key = (
        df["Previous Pivot Price"].iloc[0],
        df["Pivot Price"].iloc[0]
    )
    # 首次出现的组合直接保留
    if cur_key not in seen_keys:
        seen_keys.add(cur_key)
        filtered_result.append(df)

实现说明

  • 全程不改动单个DataFrame的原有结构、数据内容,不会因列不对齐产生空值填充
  • 无需将所有DataFrame合并拼接为大表再拆分,省去冗余的列对齐、表合并开销
  • 适配单行情景(列表每个元素为单行DF)、多行情景(列表每个元素为多行DF,按首行关键值做层级去重)两种常见使用场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 20:24:04