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

DataFrame排名波动时如何自动计算目标对象的步调值

解决方案

核心逻辑

  • 不需要硬编码第一名的颜色值,直接通过Rank字段自动匹配对比对象:Red排第1就取第2名的提及量做对比,否则取第1名的提及量做对比
  • 支持提前自动生成Rank字段,无需手动维护每周排名

实现代码

如果每周还没自动生成排名,可以先运行这段代码自动更新Rank列:

# 按提及量降序排序后自动生成排名,确保Rank字段准确
df = df.sort_values('Mentions', ascending=False).reset_index(drop=True)
df['Rank'] = df.index + 1

自动计算步调的代码如下:

# 先判断Red数据是否存在,避免报错
if df[df['Color'] == 'Red'].empty:
    print("未查询到Red的相关数据")
else:
    # 提取Red的相关数据
    red_data = df[df['Color'] == 'Red'].iloc[0]
    red_rank = red_data['Rank']
    red_mentions = red_data['Mentions']

    if red_rank == 1:
        # Red是第一名,对比第二名计算领先幅度
        compare_mentions = df[df['Rank'] == 2].iloc[0]['Mentions']
        gap_pct = (red_mentions - compare_mentions) / compare_mentions * 100
        print(f"Red当前排名第1,领先第二名{gap_pct:.1f}%")
    else:
        # Red不是第一名,对比第一名计算落后幅度
        compare_mentions = df[df['Rank'] == 1].iloc[0]['Mentions']
        gap_pct = (compare_mentions - red_mentions) / compare_mentions * 100
        print(f"Red当前排名第{red_rank},落后第一名{gap_pct:.1f}%")

示例运行结果

用你给出的示例DataFrame运行,输出结果为:Red当前排名第2,落后第一名24.6%

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 06:54:03