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

按列总和排序Pandas DataFrame并筛选前2列的实现方法

解决方案:按列总和排序并取前2列

你已经成功筛选出列总和大于4的国家,接下来结合sort_values和tail来实现按列总和排序并取前2列的需求,具体步骤如下:

分步实现

  1. 计算列总和:先获取筛选后DataFrame df1每一列的总和,得到一个以国家名为索引的Series:

    col_totals = df1.sum()
    

    针对你的数据,这个Series的结果是:

    Australia         18
    Austria            9
    United Kingdom     5
    dtype: int64
    
  2. 排序并取前2列:对列总和进行升序排序(sort_values()默认升序),此时总和最大的两个值会排在末尾,用tail(2)提取这两个列的名称:

    top2_country_cols = col_totals.sort_values().tail(2).index
    

    这里得到的列名是['Austria', 'Australia'](对应总和9和18,是前两大的数值)

  3. 生成最终DataFrame:用提取到的列名从df1中筛选出对应列:

    final_df = df1[top2_country_cols]
    

一行代码简化

如果想更简洁,直接把步骤合并成一行:

final_df = df1[df1.sum().sort_values().tail(2).index]

执行后,final_df就是按列总和排序后的前2列数据,结果如下:

Austria  Australia
date
2020-01-30       0          9
2020-01-31       9          9

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 23:27:47