python - 提取列名并在 Pandas 中对它们进行排序

标签 python pandas

我有一个 pandas 数据框,如下所示:

A  |  B  | C   | D   |  E  |
1  |  2  | 3.5 | 2.3 | 4.0 |

我希望始终提取 C 到 E 中大于 2.5 的任何列,并按其值的降序对它们进行排序。

对于上面的例子:

E,C is the output

最佳答案

转置 + 排序值

v = df.T.squeeze().loc['C':'E'].sort_values(ascending=False)
v.index[v.gt(2.5)].tolist()
['E', 'C']
<小时/>

堆栈 + sort_values

v = (
   df.stack()
     .reset_index(level=0, drop=True)
     .loc['C':'E']
     .sort_values(ascending=False)
)
v.index[v.gt(2.5)].tolist()
['E', 'C']

关于python - 提取列名并在 Pandas 中对它们进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50556645/

相关文章:

python - Python中的日期时间当前年份和月份

Python:从列表中,构建键值比不是 1:1 的字典

python - 连接两个 pandas 数据透视表

python - Jinja 在 set block 中转义 HTML

python - 当 Numpy 数组只包含上/下三角形中的值时,有没有办法加快它们的计算速度?

python - 访问 Pandas DataFrame 元素中的列表

python - 如何对 Pandas 数据框中的两列进行字符串比较?

python - 如何聚合集合的列?

python-3.x - 根据 Python 中另一个数据帧的列对一个数据帧的行(具有重复项的列)进行排序

python - 根据第一列中的模式更改在 Pandas 数据框中创建新列