Pandas.DataFrame.idxmin() 最小值索引 详解 含代码 含测试数据集 随Pandas版本持续更新

news2024/9/30 5:36:29

关于Pandas版本: 本文基于 pandas2.2.0 编写。

关于本文内容更新: 随着pandas的stable版本更迭,本文持续更新,不断完善补充。

传送门: Pandas API参考目录

传送门: Pandas 版本更新及新特性

传送门: Pandas 由浅入深系列教程

本节目录

  • Pandas.DataFrame.idxmin()
    • 语法:
    • 返回值:
    • 参数说明:
      • axis 指定查找方向(行或列)
      • skipna 是否排除 [缺失值](https://shuxiangxian.blog.csdn.net/article/details/134620311)
      • numeric_only 排除非纯数值的行或列
    • 相关方法:
    • 示例:
      • 示例1:查找(每行/每列) 最小值,第一次出现位置的索引
        • 示例1-1、构建演示数据
        • 示例1-2、查找每列的最小值,第一次出现位置的索引
        • 示例1-3:查找每行的最小值,第一次出现位置的索引
      • 示例2:缺失值对计算结果的影响
        • 示例2-1、构建演示数据
        • 示例2-2、观察排除缺失值(保持默认)时,每列的最小值位置
        • 示例2-3、不排除缺失值
      • 示例3:`numeric_only=True` 将排除不是纯数值型的行或列
        • 示例3-1、构建演示数据
        • 示例3-2、numeric_only=True` 排除了不是纯数值型的行或列

Pandas.DataFrame.idxmin()

DataFrame.idxmin 用于返回沿着指定轴的最小值第一次出现位置的索引。

语法:

DataFrame.idxmin(axis=0, skipna=True, numeric_only=False)

返回值:

  • Series

    该方法的返回值是一个 Series,包含沿着指定轴的最小值位置的索引

    ⚠️ 注意 :

    • axis=0 即查找每列的最小值位置时,Series的索引 表示的是 DataFrame 列名, 表示的是这一列的最小值在 DataFrame里对应的 行索引。
    • axis=1 即查找每行的最小值位置时,Series的索引 表示的是 DataFrame 行索引, 表示的是这一行的最小值在 DataFrame里对应的 列名。

参数说明:

axis 指定查找方向(行或列)

axis:{0 or ‘index’, 1 or ‘columns’}, default 0 例1

axis 参数用于控制查找方向:

  • 0 or ‘index’ 查找每列的最小值位置时。
  • 1 or ‘columns’ 查找每行的最小值位置时。

skipna 是否排除 缺失值

skipna:bool, default True

skipna 参数用于控制是否排除缺失值,默认 skipna=Ture 表示排除缺失值:

  • True 排除缺失值。
  • False 不排除缺失值。

⚠️ 注意 :

不建议设置为 skipna=False 。因为某行或某列出现缺失值,将只会返回nan。 例2-3

numeric_only 排除非纯数值的行或列

numeric_only:bool, default False 例3

numeric_only 参数用于控制是否只在纯数值型的行或列中查找最小值的位置,默认 numeric_only=False

  • False 对行或列的数据类型没有限制。
  • True 只在纯数值型的行或列中查找最小值位置。

⚠️ 注意 :

数值型包含 浮点数 float, 整数 int布尔型 boolean

如果没有可供计算的行或列,结果将是一个空的 Series

相关方法:

➡️ 相关方法


  • Series.idxmin

    最小值索引

示例:

测试文件下载:

本文所涉及的测试文件,如有需要,可在文章顶部的绑定资源处下载。

若发现文件无法下载,应该是资源包有内容更新,正在审核,请稍后再试。或站内私信作者索要。

测试文件下载位置.png

测试文件下载位置

示例1:查找(每行/每列) 最小值,第一次出现位置的索引

示例1-1、构建演示数据
import pandas as pd

df = pd.DataFrame(
    {"第1列": [10.51, 103.11, 55.48], "第2列": [37.2, 19.66, 1712]},
    index=["第一行", "第二行", "第三行"],
)
df
第1列第2列
第一行10.5137.20
第二行103.1119.66
第三行55.481712.00
示例1-2、查找每列的最小值,第一次出现位置的索引
df.idxmin()
第1列    第一行
第2列    第二行
dtype: object
示例1-3:查找每行的最小值,第一次出现位置的索引
df.idxmin(axis=1)
第一行    第1列
第二行    第2列
第三行    第1列
dtype: object

示例2:缺失值对计算结果的影响

示例2-1、构建演示数据
import pandas as pd
import numpy as np

df = pd.DataFrame(
    {"第1列": [np.NaN, 103.11, 55.48], "第2列": [37.2, np.NaN, 1712]},
    index=["第一行", "第二行", "第三行"],
)
df
第1列第2列
第一行NaN37.2
第二行103.11NaN
第三行55.481712.0
示例2-2、观察排除缺失值(保持默认)时,每列的最小值位置
df.idxmin()
第1列    第三行
第2列    第一行
dtype: object

示例2-3、不排除缺失值
df.idxmin(skipna=False)
C:\Users\Administrator\AppData\Local\Temp\ipykernel_568032\1810047541.py:1: FutureWarning: The behavior of DataFrame.idxmin with all-NA values, or any-NA and skipna=False, is deprecated. In a future version this will raise ValueError
  df.idxmin(skipna=False)





第1列    NaN
第2列    NaN
dtype: object

示例3:numeric_only=True 将排除不是纯数值型的行或列

示例3-1、构建演示数据
import pandas as pd
import numpy as np

df = pd.DataFrame(
    {"第1列": [np.NaN, 103.11, 2], "第2列": ['地雷', np.NaN, 1712]},
    index=["第一行", "第二行", "第三行"],
)
df
第1列第2列
第一行NaN地雷
第二行103.11NaN
第三行2.001712
示例3-2、numeric_only=True` 排除了不是纯数值型的行或列
df.idxmin(numeric_only=True)
第1列    第三行
dtype: object

示例3-3、如果没有可供计算的行或列,结果将是一个空的 Series

import pandas as pd
import numpy as np

df = pd.DataFrame(
    {"第1列": [np.NaN, 103.11, '测试'], "第2列": ['地雷', np.NaN, 1712]},
    index=["第一行", "第二行", "第三行"],
)
df.idxmin(numeric_only=True)
Series([], dtype: object)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1407310.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C#用DateTime.Now静态属性返回日期的星期信息

目录 一、使用的方法 1.Now属性 2.ToString方法 二、示例 使用DateTime结构的Now静态属性,可以方便地获取系统日期信息。调用时间对象的ToString方法,在该方法的参数中添加适当的格式化字符串,将返回日期的星期信息。 一、使用的方法 1…

网络电视盒子哪个好?博主分享超高性价比网络电视盒子推荐

电视盒子是我们使用最多的数码产品,年货节很多朋友在纠结网络电视盒子哪个好,我这次的测评产品就是电视盒子,按照18款电视盒子的深度测评结果整理了网络电视盒子推荐,想知道网络电视盒子哪个好可以看看下面这五款电视盒子。 一&am…

【数学建模】插值与拟合

文章目录 插值插值方法用Python解决插值问题 拟合最小二乘拟合数据拟合的Python实现 适用情况 处理由试验、测量得到的大量数据或一些过于复杂而不便于计算的函数表达式时,构造一个简单函数作为要考察数据或复杂函数的近似 定义 给定一组数据,需要确定满…

ArcEngine添加点要素、线要素、面要素及学习总结

基于C#的ArcEngine二次开发教程(13):点、线、面要素的绘制_arcengine onmousedown-CSDN博客 https://www.cnblogs.com/cannel/p/11074343.html ArcEngine绘制点、线、多边形、矩形、圆形、椭圆的代码_arcengine 开发 生成矩形-CSDN博客 https…

keil5 查看stm32 寄存器的值

1 查看芯片内部寄存器的值,首先是在仿真状态下,首先仿真,程序运行。 2 点击菜单栏的 View -> System viewer ,右侧便会出现芯片的所有寄存器(如果没有,需要添加),点击要查看的寄存器,便会出…

【手撕C语言 第八集】函数栈帧的创建与销毁

文章目录 一、什么是函数栈帧?二、函数栈帧能解决什么问题呢?(1)局部变量是如何创建的?(2)为什么局部变量不初始化内容是随机的?(3)函数调用时参数是如何传递…

使用ffmpeg转换索尼老DV拍摄的VOB文件为mp4

一些背景故事 最近对象想用 CCD 拍照录像,家里刚好有一台快 20 年前的索尼 DV DCR-DVD653E,就是电池老化充不进去电了。 翻出来之后还感慨了一下:当年没有网购,价格不透明;有些地方也没有官方店,只有一两家…

Yuliverse:引领区块链游戏新篇章!

数据源:Yuliverse Dashboard 作者:lesleyfootprint.network 什么是 Yuliverse Yuliverse 是一款元宇宙游戏的先锋,是一款主打 Explore to earn 和 Social to earn 的链游。 这是一款能让你边玩边赚钱的免费区块链游戏,得到 LI…

解决docker desktop 登录不上账号的问题

一、背景 点击“Sign in”,一直卡在Verifying credentials...,重试也没用。 二、解决办法 1、macOS下载并安装Proxifier 2、配置Proxifier 配置Proxies 配置rule 其中的Applications填:"Docker.app"; "Docker"; com.…

机器学习之聚类-2D数据类别划分

无监督学习(Unsupervised Learning) 机器学习的一种方法,没有给定事先标记过的训练示例,自动对输入的数据进行分类或分群。 方式一:站着或坐着 方式二:全身或半身 方式三:蓝眼球或不是蓝眼球 …

解决TortoiseGit软件Git Show log时显示Too many files to display的问题

1 问题描述 有时代码提交修改的文件比较多,当查看log时无法显示出来修改的文件列表,如下所示: 2 解决方法 将LogTooManyItemsThreshold尽可能配置得大一些。 三 参考资料 https://gitlab.com/tortoisegit/tortoisegit/-/issues/3878

使用 Docker 部署 ServerStatus 服务器监控系统

一、ServerStatus 介绍 GitHub:https://github.com/cppla/ServerStatus ServerStatus 是一个酷炫高逼格的云探针、云监控、服务器云监控、多服务器探针~。 特性 使用 Rust 完全重写 Server、Client,单个执行文件部署支持上下线和简单自定义规则告警 (T…

01. eNSP环境以及VRP基本使用

eNSP的基本使用 1. eNSP的桥连接1.1. 具体操作(1)创建环回适配器(2)设置虚拟网卡(3)使用eNSP桥接计算机 2. 华为VRP系统2.1. 实验1:VRP的基本操作2.2. 实验2:文件命令(1&…

mysql 基础(三)

一、多表设计 数据库设计范式 第一范式(确保每列保持原子性) 第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。第二范式就是要有主键,要求其他字段都依赖于主键。 没有主键就没有唯一性&…

el-tree勾选后退出再打开显示之前已经勾选的

官网文档 element-ui官网文档有默认展开和默认选中 <el-tree:data"data"show-checkboxnode-key"id":default-expanded-keys"[2, 3]":default-checked-keys"[5]":props"defaultProps"> </el-tree><script>…

力扣518. 零钱兑换 II

动态规划 思路&#xff1a; 假设 dp[i] 为金额 i 使用零钱的组合数&#xff0c;其可以由其中的一种零钱 coin 和 i - coin 组合&#xff1b; 遍历零钱数组&#xff0c;对每一种零钱 coin 进行如下操作&#xff1a; 从 coin 到 amount 金额进行遍历&#xff0c;dp[j] dp[j] d…

Prometheus 薪资翻倍的监控系统?

1. 介绍与架构 Prometheus是一个开源的系统监控和警报工具包&#xff0c;用于收集和存储时间序列数据&#xff0c;包括指标信息、记录时间戳以及可选的键值对标签。许多公司使用Prometheus监控K8s集群。 2. 合适与不合适场景 合适场景 Prometheus适用于记录各种数字时间序列…

web系统架构基于springCloud的各技术栈

博主目前开发的web系统架构是基于springCloud的一套微服务架构。 使用的技术栈&#xff1a;springbootmysqlclickhousepostgresqlredisrocketMqosseurekabase-gatewayapollodockernginxvue的一套web架构。 一、springboot3.0 特性&#xff1a;Spring Boot 3.0提供了许多新特性…

每日一题——LeetCode1313.解压缩编码列表

这么简单的题目要说的这么复杂 nums里每相邻的两个元素nums[i]、nums[j]为一对&#xff0c;nums[i]表示nums[j]的次数 var decompressRLElist function(nums) {let res[]for(let i0,j1;j<nums.length-1;i2,j2){while(nums[i]--){res.push(nums[j])}}return res }; 消耗时…

代码随想录 Leetcode107. 二叉树的层序遍历 II

题目&#xff1a; 代码&#xff08;首刷自解 2024年1月24日&#xff09;&#xff1a; class Solution { public:vector<vector<int>> levelOrderBottom(TreeNode* root) {vector<vector<int>> res {};if(root nullptr) return res;queue<TreeNode…