微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – pandas dataframe中max值的索引和列

我有一个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]应该这样做.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐