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

在Pandas中提取C-E列中值>2.5的列名并降序排序

实现Pandas提取指定列并按值排序的需求

嘿,这需求很清晰,我来给你一步步拆解实现:

首先,先还原你给出的示例DataFrame(假设是单行数据,列A-E对应的值分别是1、2、3.5、2.3、4.0):

import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({
    'A': [1],
    'B': [2],
    'C': [3.5],
    'D': [2.3],
    'E': [4.0]
})

接下来分三步完成需求:

  1. 锁定目标列范围
    用loc方法精准选取C到E的列:

    target_subset = df.loc[:, 'C':'E']
    
  2. 筛选+排序
    先提取单行的数据(因为是单行,用iloc[0]获取),然后筛选出值大于2.5的列,再按值降序排列:

    # 获取单行的Series,索引是列名,值对应列的数据
    row_values = target_subset.iloc[0]
    # 筛选并排序
    filtered_sorted_cols = row_values[row_values > 2.5].sort_values(ascending=False)
    
  3. 转为逗号分隔的字符串
    直接提取排序后的列名,用逗号拼接:

    result = ','.join(filtered_sorted_cols.index)
    print(result)  # 输出: E,C
    

如果想精简成一行代码(可读性稍差,但执行结果一致):

result = ','.join(df.loc[:, 'C':'E'].iloc[0][df.loc[:, 'C':'E'].iloc[0] > 2.5].sort_values(ascending=False).index)

这样就完美匹配你的预期输出啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:12:50