python - Pandas 数据框中最大值的索引和列

标签 python pandas

我有一个包含五列和五行的 python 数据框 df。我想获取最大三个值的行和列名称

示例:

df = 

  A   B  C  D  E  F
1 00 01 02 03 04 05
2 06 07 08 09 10 11
3 12 13 14 15 16 17
4 18 19 20 21 22 23
5 24 25 26 27 28 29

输出显示类似 [5,F],[5,E],[5,D]

最佳答案

您可以在排序前使用unstack:

>>> df
    A   B   C   D   E   F
1   0   1   2   3   4   5
2   6   7   8   9  10  11
3  12  13  14  15  16  17
4  18  19  20  21  22  23
5  24  25  26  27  28  29
>>> df.unstack()
A  1     0
   2     6
   3    12
   4    18
   5    24
B  1     1
   2     7
   3    13
   4    19
   5    25
[...]
F  1     5
   2    11
   3    17
   4    23
   5    29

等等

>>> df2 = df.unstack().copy()
>>> df2.sort()
>>> df2[-3:]
D  5    27
E  5    28
F  5    29
>>> df2[-3:].index
MultiIndex
[(D, 5.0), (E, 5.0), (F, 5.0)]

甚至

>>> df.unstack()[df.unstack().argsort()].index[-3:]
MultiIndex
[(D, 5.0), (E, 5.0), (F, 5.0)]

[我没有费心颠倒顺序:在最后粘贴 [::-1] 应该可以。]

关于python - Pandas 数据框中最大值的索引和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14941261/

相关文章:

python - 我到底如何(以及为什么)可以通过 numpy.random 访问所有 NumPy?

python - 如何使用python设置hdfs目录配额

python - 生成所有可能的 n 维 k*k*...*k 数组,每个数组沿轴有一排

python - 如何使用 pandas 中的 apply 函数返回多行?

python - pandas:仅当满足条件时才进行分组

python - ValueError : Buffer dtype mismatch, 预期 'float64_t' 但得到 'float'

python - 迭代 Python 列表,保留嵌入列表的结构

python - 合并字典

python - 如何在 beautiful soup 中使用 get_text() 时更改 unicode 格式

Python pandas dataframe-从标题中删除列