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

如何在DataFrame中选取百分比变化绝对值最大的条目

找出百分比变化绝对值最大的年份和品牌

实现步骤

  1. 计算百分比变化绝对值
    用pct_change()计算各品牌的环比变化,再取绝对值聚焦变化幅度(忽略涨跌方向):

    import pandas as pd
    
    # 构建示例DataFrame
    df = pd.DataFrame(
        {'Mercedes': [100, 110, 170, 150], 'BMW': [400, 490, 470, 420]},
        index=[2010, 2011, 2012, 2013]
    )
    
    # 计算百分比变化的绝对值
    pct_abs = df.pct_change().abs()
    
  2. 转换数据格式
    把宽表转成便于排序的长表,同时剔除无上年对比数据的2010年:

    # 将年份转为列,转成长格式
    long_data = pct_abs.reset_index().rename(columns={'index': 'Year'})
    long_data = pd.melt(long_data, id_vars='Year', var_name='Brand', value_name='Change')
    # 移除NaN行(2010年无对比数据)
    long_data = long_data.dropna()
    
  3. 排序并输出目标格式
    按变化幅度降序排列后,遍历输出指定格式的结果:

    # 按变化幅度降序排序
    sorted_result = long_data.sort_values(by='Change', ascending=False).reset_index(drop=True)
    # 输出结果
    for rank, row in sorted_result.iterrows():
        print(f"{rank} {row['Brand']} {row['Year']}")
    

运行结果

0 BMW 2011
1 Mercedes 2012
2 BMW 2013

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 06:05:21