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

如何用Pandas筛选按Rank总和排名前4的品牌+指定品牌X

解决方案:用Pandas筛选目标品牌

嘿,这需求很清晰,咱们用Pandas几步就能搞定!下面是具体的实现步骤和代码:

步骤1:计算每个品牌的Rank总和

首先我们需要按品牌分组,计算每个品牌所有产品的Rank总和:

import pandas as pd

# 假设你的数据集已经读入为df
# 示例数据(可替换为你的真实数据)
data = [
    ["A", "P1", 1000], ["A", "P2", 1210], ["A", "P3", 2000],
    ["A", "P4", 600], ["A", "P5", 756], ["A", "P6", 867],
    ["B", "P1", 549], ["B", "P2", 1572], ["B", "P3", 3490],
    ["B", "P4", 2341], ["B", "P5", 431], ["B", "P6", 321],
    ["C", "P1", 421], ["C", "P2", 121], ["C", "P3", 805],
    ["C", "P4", 1202], ["C", "P5", 4032], ["C", "P6", 432]
]
df = pd.DataFrame(data, columns=["Brand", "Product", "Rank"])

# 计算各品牌Rank总和
brand_rank_totals = df.groupby("Brand")["Rank"].sum().reset_index()

步骤2:提取Rank总和排名前4的品牌

用nlargest方法直接获取总和最高的前4个品牌:

# 获取前4名品牌的列表
top_4_brands = brand_rank_totals.nlargest(4, "Rank")["Brand"].tolist()

步骤3:加入你的目标品牌"X"

把你代表的品牌"X"加入到目标列表里,如果担心"X"已经在前4名中(避免重复),可以用集合去重:

# 加入品牌X,可选去重
target_brands = top_4_brands + ["X"]
# 如果需要去重,用下面这行:
# target_brands = list(set(top_4_brands + ["X"]))

步骤4:筛选原数据中的目标品牌

最后用isin方法筛选出所有目标品牌的数据:

# 筛选出目标品牌的所有行
filtered_df = df[df["Brand"].isin(target_brands)]

额外提示

  • 如果品牌"X"不在你的原始数据集中,filtered_df只会包含前4名品牌的数据,不会报错;
  • 如果你需要保留品牌的排名顺序(前4+X),可以用Categorical类型来指定顺序,避免筛选后顺序混乱:
    filtered_df["Brand"] = pd.Categorical(filtered_df["Brand"], categories=target_brands, ordered=True)
    filtered_df = filtered_df.sort_values("Brand")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:12:21