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

Python Pandas:基于前序行产品版本变更规则删除冗余行数据

实现方案

核心逻辑

  1. 拆分产品列的内容,提取系列标识(如A、B)和数字版本号(如1、2、3),方便版本大小对比
  2. 按原始数据的顺序逐行遍历,为每个系列单独维护当前已出现过的最高版本号
  3. 逐行校验:如果当前行版本号大于等于对应系列的已记录最高版本,保留该行并更新最高版本;低于最高版本则直接丢弃

Python Pandas 实现代码

import pandas as pd

# 示例:加载数据,你可以替换为自己的读数据逻辑
data = [
    ["A.1", 10], ["A.1", 5], ["A.1", 1], ["A.1", 2], ["A.1", 1],
    ["A.2", 5], ["A.2", 1], ["A.1", 2], ["A.1", 10], ["A.2", 10],
    ["B.1", 1], ["B.1", 2], ["B.1", 1], ["B.3", 5], ["B.1", 1],
    ["B.3", 2], ["B.1", 10]
]
df = pd.DataFrame(data, columns=["Product", "CycleTime"])

# 拆分系列和版本号
df[["series", "version"]] = df["Product"].str.split(".", expand=True)
df["version"] = df["version"].astype(int)

max_version = {}
result_rows = []

for _, row in df.iterrows():
    current_series = row["series"]
    current_ver = row["version"]
    if current_series not in max_version:
        max_version[current_series] = current_ver
        result_rows.append(row)
    else:
        if current_ver >= max_version[current_series]:
            max_version[current_series] = current_ver
            result_rows.append(row)

# 生成最终结果
final_df = pd.DataFrame(result_rows).drop(columns=["series", "version"]).reset_index(drop=True)
print(final_df)

运行上述代码输出的结果和你给出的期望结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 23:27:03