pandas求行最大值及其索引的实现

 更新时间:2024年04月03日 09:29:31   作者:数据小白的进阶之路  
工作需要,查询某一行中的最大值及其索引,本文主要介绍了pandas求行最大值及其索引的实现,具有一定的参考价值,感兴趣的可以了解一下

在平时训练完模型后,需要对模型预测的值做进一步的数据操作,例如在对模型得到类别的概率值按行取最大值,并将最大值所在的列单独放一列。

数据格式如下:

array
array([[ 0.47288769,  0.23982215,  0.2261405 ,  0.06114962],
       [ 0.67969596,  0.11435176,  0.17647322,  0.02947907],
       [ 0.00621393,  0.01652142,  0.31117165,  0.66609299],
       [ 0.24093366,  0.23636758,  0.30113828,  0.22156043],
       [ 0.44093642,  0.2245989 ,  0.24515967,  0.08930501],
       [ 0.05540339,  0.10013942,  0.30361843,  0.54083872],
       [ 0.11221886,  0.75674808,  0.09237131,  0.03866173],
       [ 0.24885316,  0.28243011,  0.28312165,  0.18559511],
       [ 0.01205211,  0.03740638,  0.271065  ,  0.67947656]], dtype=float32)

想在想实现的功能是在上述DataFrame后面增加两列:一列是最大值,一列是最大值所在的行索引。

首先先来了解一下argmax函数。

argmax(a, axis=None)

# a 表示DataFrame

# axis 表示指定的轴,默认是None,表示把array平铺,等于1表示按行,等于0表示按列。

对于DataFrame来说,求解过程如下:

代码如下:

#导入库
import pandas as pd
import numpy as np
#将array转化为DataFrame
arr=pd.DataFrame(array,columns=["one","two","three","four"])
#分别求行最大值及最大值所在索引
arr['max_value']=arr.max(axis=1)
arr['max_index']=np.argmax(array,axis=1)
#得出如下结果:
arr
Out[28]: 
        one       two     three      four  max_index  max_value
0  0.472888  0.239822  0.226140  0.061150          0   0.472888
1  0.679696  0.114352  0.176473  0.029479          0   0.679696
2  0.006214  0.016521  0.311172  0.666093          3   3.000000
3  0.240934  0.236368  0.301138  0.221560          2   2.000000
4  0.440936  0.224599  0.245160  0.089305          0   0.440936
5  0.055403  0.100139  0.303618  0.540839          3   3.000000
6  0.112219  0.756748  0.092371  0.038662          1   1.000000
7  0.248853  0.282430  0.283122  0.185595          2   2.000000
8  0.012052  0.037406  0.271065  0.679477          3   3.000000

假如现在要找出行第二大的值及其索引时,该怎么操作呢:

解决思路:可以将行的最大值置为0,然后在寻找每行的最大值及其索引。

具体代码实现过程如下:

#将最大值置为0
array[arr.index,np.argmax(array,axis=1)]=0
array
array([[ 0.        ,  0.23982215,  0.2261405 ,  0.06114962],
       [ 0.        ,  0.11435176,  0.17647322,  0.02947907],
       [ 0.00621393,  0.01652142,  0.31117165,  0.        ],
       [ 0.24093366,  0.23636758,  0.        ,  0.22156043],
       [ 0.        ,  0.2245989 ,  0.24515967,  0.08930501],
       [ 0.05540339,  0.10013942,  0.30361843,  0.        ],
       [ 0.11221886,  0.        ,  0.09237131,  0.03866173],
       [ 0.24885316,  0.28243011,  0.        ,  0.18559511],
       [ 0.01205211,  0.03740638,  0.271065  ,  0.        ]], dtype=float32)
#取出第二大值及其索引
arr['second_value']=array.max(axis=1)
arr['second_index']=np.argmax(array,axis=1)
arr
Out[208]: 
        one       two     three      four  max_value  max_index  second_value  \
0  0.472888  0.239822  0.226140  0.061150   0.472888          0      0.239822   
1  0.679696  0.114352  0.176473  0.029479   0.679696          0      0.176473   
2  0.006214  0.016521  0.311172  0.666093   0.666093          3      0.311172   
3  0.240934  0.236368  0.301138  0.221560   0.301138          2      0.240934   
4  0.440936  0.224599  0.245160  0.089305   0.440936          0      0.245160   
5  0.055403  0.100139  0.303618  0.540839   0.540839          3      0.303618   
6  0.112219  0.756748  0.092371  0.038662   0.756748          1      0.112219   
7  0.248853  0.282430  0.283122  0.185595   0.283122          2      0.282430   
8  0.012052  0.037406  0.271065  0.679477   0.679477          3      0.271065   

   second_index  
0             1  
1             2  
2             2  
3             0  
4             2  
5             2  
6             0  
7             1  
8             2 

到此这篇关于pandas求行最大值及其索引的实现的文章就介绍到这了,更多相关pandas求行最大值及索引内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python Excel操作之将ISBN转条形码

    Python Excel操作之将ISBN转条形码

    这篇文章主要为大家详细介绍了Python Excel操作中如何将ISBN转条形码功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-06-06
  • Python中的生成器和yield详细介绍

    Python中的生成器和yield详细介绍

    这篇文章主要介绍了Python中的生成器和yield详细介绍,本文讲解了列表推导与生成器表达式、斐波那契数列、生成器Generator、协程与yield表达式、使用生成器与协程等内容,需要的朋友可以参考下
    2015-01-01
  • Pytorch中TensorDataset,DataLoader的联合使用方式

    Pytorch中TensorDataset,DataLoader的联合使用方式

    这篇文章主要介绍了Pytorch中TensorDataset,DataLoader的联合使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python 列表反转显示的四种方法

    Python 列表反转显示的四种方法

    这篇文章主要介绍了Python 列表反转显示的四种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Jupyter notebook命令和编辑模式常用快捷键汇总

    Jupyter notebook命令和编辑模式常用快捷键汇总

    这篇文章主要介绍了Jupyter notebook命令和编辑模式常用快捷键汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • python实现聚类算法原理

    python实现聚类算法原理

    这篇文章主要为大家详细介绍了python实现聚类算法原理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • 使用Python的defaultdict处理字典中缺失键的常见方法

    使用Python的defaultdict处理字典中缺失键的常见方法

    在Python编程中,字典是一种非常常用的数据结构,但在处理字典时,经常会遇到访问或修改不存在的键的情况,这会导致KeyError异常,本文介绍了如何使用Python标准库中的collections.defaultdict来优雅地处理字典中的缺失键问题,需要的朋友可以参考下
    2025-08-08
  • linux下安装python3和对应的pip环境教程详解

    linux下安装python3和对应的pip环境教程详解

    这篇文章主要介绍了linux下安装python3和对应的pip环境,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • python之while循环、无限循环用法及说明

    python之while循环、无限循环用法及说明

    这篇文章主要介绍了python之while循环、无限循环用法及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 解决Python中pandas读取*.csv文件出现编码问题

    解决Python中pandas读取*.csv文件出现编码问题

    很多朋友在使用Python中pandas读取csv文件时,出现编码格式问题,接下来通过本文给大家分享解决Python中pandas读取*.csv文件出现编码问题,需要的朋友可以参考下
    2019-07-07

最新评论