【Python_Pandas】reset_index() 函数解析

news2024/11/28 12:42:06

【Python_Pandas】reset_index函数解析

文章目录

  • 【Python_Pandas】reset_index函数解析
    • 1. 介绍
    • 2. 示例
      • 2.1 参数drop
      • 2.2 参数inplace
      • 2.3 参数level
      • 2.4 参数col_level
      • 2.5 参数col_fill
    • 参考

1. 介绍

pandas.DataFrame.reset_index

reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill='')

1)函数作用:

  • 重置索引或其level。
    • 重置数据帧的索引,并使用默认索引。如果数据帧具有多重索引,则此方法可以删除一个或多个level。

2)参数:

  • drop: 重新设置索引后是否将原索引作为新的一列并入DataFrame,默认为False
  • inplace: 是否在原DataFrame上改动,默认为False
  • level: 如果索引(index)有多个列,仅从索引中删除level指定的列,默认删除所有列
  • col_level: 如果列名(columns)有多个级别,决定被删除的索引将插入哪个级别,默认插入第一级
  • col_fill: 如果列名(columns)有多个级别,决定其他级别如何命名

3)返回

  • DataFrame or None。具有新索引的数据帧,如果inplace=True,则无索引。

2. 示例

2.1 参数drop

  • False:表示重新设置索引后,将原索引作为新的一列并入DataFrame,
  • True:表示删除原索引
import pandas as pd
import numpy as np

df = pd.DataFrame([('bird', 389.0), ('bird', 24.0), ('mammal', 80.5), ('mammal', np.nan)],
                  index=['falcon', 'parrot', 'lion', 'monkey'], columns=('class', 'max_speed'))
print(df)
print('\n')

df1 = df.reset_index()
print(df1)
print('\n')

df2 = df.reset_index(drop=True)
print(df2)
  • 输出:
    在这里插入图片描述

2.2 参数inplace

  • True表示:在原DataFrame上修改,返回为None
  • False:将修改后的DataFrame作为新的对象返回
import pandas as pd
import numpy as np

df = pd.DataFrame([('bird', 389.0), ('bird', 24.0), ('mammal', 80.5), ('mammal', np.nan)],
                  index=['falcon', 'parrot', 'lion', 'monkey'], columns=('class', 'max_speed'))
print(df)
print('\n')

df1 = df.reset_index()
print(df1)
print('\n')

df2 = df.reset_index(inplace=True)
print(df2)
print('\n')
print(df)
  • 输出:
    在这里插入图片描述

2.3 参数level

如果索引有多个列,仅从索引中删除由level指定的列,默认删除所有列。

  • 输入整数时表示将index的names中下标为level的索引删除;
  • 输入为字符串时表示将名字为level的索引删除
import pandas as pd
import numpy as np

index = pd.MultiIndex.from_tuples([('bird', 'falcon'), ('bird', 'parrot'), ('mammal', 'lion'), ('mammal', 'monkey')], names=['class', 'name'])
columns = pd.MultiIndex.from_tuples([('speed', 'max'), ('species', 'type')])
df = pd.DataFrame([(389.0, 'fly'), ( 24.0, 'fly'), ( 80.5, 'run'), (np.nan, 'jump')], index=index, columns=columns)

print(df)
print('\n')

df0 = df.reset_index()
print(df0)
print('\n')

df1 = df.reset_index(level=1)
print(df1)
print('\n')

df2 = df.reset_index(level='name')
print(df2)
  • 输出:
    在这里插入图片描述

2.4 参数col_level

如果列名(columns)有多个级别,决定被删除的索引将插入哪个级别,默认插入第一级(col_level=0)

import pandas as pd
import numpy as np

index = pd.MultiIndex.from_tuples([('bird', 'falcon'), ('bird', 'parrot'), ('mammal', 'lion'), ('mammal', 'monkey')], names=['class', 'name'])
columns = pd.MultiIndex.from_tuples([('speed', 'max'), ('species', 'type')])
df = pd.DataFrame([(389.0, 'fly'), ( 24.0, 'fly'), ( 80.5, 'run'), (np.nan, 'jump')], index=index, columns=columns)

print(df)
print('\n')

df1 = df.reset_index(level=0, col_level=0)
print(df1)
print('\n')

df2 = df.reset_index(level=0, col_level=1)
print(df2)
print('\n')
  • 输出:
    在这里插入图片描述

2.5 参数col_fill

重置索引时被删除的索引只能插入一个级别,

  • 如果列名(columns)有多个级别,那么这个列的列名的其他级别如何命名就由col_fill决定,默认不做填充,
  • 如果传入None则用被删除的索引的名字填充
import pandas as pd
import numpy as np

index = pd.MultiIndex.from_tuples([('bird', 'falcon'), ('bird', 'parrot'), ('mammal', 'lion'), ('mammal', 'monkey')], names=['class', 'name'])
columns = pd.MultiIndex.from_tuples([('speed', 'max'), ('species', 'type')])
df = pd.DataFrame([(389.0, 'fly'), ( 24.0, 'fly'), ( 80.5, 'run'), (np.nan, 'jump')], index=index, columns=columns)

print(df)
print('\n')

df0 = df.reset_index(level=0, col_level=0)
print(df0)
print('\n')

df1 = df.reset_index(level=0, col_level=0, col_fill=None)
print(df1)
print('\n')

df2 = df.reset_index(level=0, col_level=1, col_fill='species')
print(df2)
print('\n')

df3 = df.reset_index(level=0, col_level=0, col_fill='genus')
print(df3)
print('\n')
  • 输出:
    在这里插入图片描述
    在这里插入图片描述

参考

【1】https://blog.csdn.net/weixin_43298886/article/details/108090189

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

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

相关文章

【AI大模型智慧办公】用《文心一言》1分钟写一篇博客简直yyds

文章目录 前言文心一言是什么文心一言可以做什么文心一言写博客申请体验写在最后 前言 当今社会,博客已成为了许多人分享观点、知识和经验的重要平台。用文心一言写博客是将自己的思考、想法和经验以文字的形式呈现出来,让更多人了解自己。通过写博客&a…

【Python入门】Python循环语句(while循环的基础语法)

前言 📕作者简介:热爱跑步的恒川,致力于C/C、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。 📗本文收录于Python零基础入门系列,本专栏主要内容为Python基础语法、判断、循环语句、函…

【计网】第三章 数据链路层(4)局域网、以太网、无线局域网、VLAN

文章目录 3.6-1 局域网基本概念和体系结构一、局域网二、局域网基本概念和体系结构三、局域网传输介质四、局域网介质控制方法五、局域网分类六、IEEE 802 标准七、MAC 子层和 LLC 子层总结: 3.6-2 以太网一、以太网概述二、以太网提供无连接、不可靠的服务三、以太…

RabbitMQ启动失败

首先,你得先确认的你得Erlang的版本和RabbitMQ的版本是否能相互兼容,如果不能,请先下载对应的Erlang版本或者RabbitMQ版本。 1. 在Java中使用了RabbitMQ发现不停的尝试连接,却连不上的问题 先在cmd下输入erl,看一下E…

EXCEL比较麻烦零碎的日期数据的处理,数字转日期,日期转数字

1 有时候想输入日期,但会被EXCEL自动识别为数字 原因是 有的EXCEL版本会处理,有的则不会自动处理为日期。也可能,单元格因为各种原因被提前设置了格式,比如常规等。还有的原因是因为EXCEL从xml等其他文件里导入的日期时间等数据本…

大数据Doris(二十):Doris的Bitmap索引介绍

文章目录 Doris的Bitmap索引介绍 一、Bitmap位图索引原理 二、Bitmap位图索引语法 三、注意事项 Doris的Bitmap索引介绍 一、Bitmap位图索引原理 bitmap,位图,是一种数据结构,即bit的集合,每一个bit记录0或者1,代…

EPLAN2022 3D宏文件创建

我们经常使用导入3D模型文件创建宏文件。但有时候导入的3D文件缺少了一些细节或者变形,因此在导入3D文件之前,需要设置一下细节清晰度。 1. 设置导入3D图的清晰度 选择菜单栏中的【文件】➡【设置】 选择设置的项目【新项目(4)】…

【Linux内核解析-linux-5.14.10-内核源码注释】信号量semaphore机制

信号量实现方法 信号量机制是一种用于控制并发访问的同步机制,常用于多进程或多线程之间的协调。在Linux内核中,信号量机制是通过struct semaphore结构体来实现的。 每个semaphore结构体包含一个计数器和一个等待队列,它们用于跟踪当前可用…

【Promptulate】一个强大的LLM Prompt Layer框架,构建更强悍的GPT应用

本文节选自笔者博客: https://www.blog.zeeland.cn/archives/promptulate666 项目地址:https://github.com/Undertone0809/promptulate 💖 作者简介:大家好,我是Zeeland,全栈领域优质创作者。📝…

2023.5.14 第五十三次周报

目录 前言 文献阅读:基于BO-EMD-LSTM模型预测教室长期二氧化碳浓度 背景 思路 BO-EMD-LSTM 混合模型 EMD 算法 与其他模型的比较 结论 论文代码 总结 前言 This week, I studied an article that uses LSTM to predict gas concentration.This study wa…

Netty中NioEventLoopGroup介绍

一、Netty基本介绍 Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。Netty 在保证易于开发的同时还保证了其应用的性能,稳定性和伸缩性。 Netty 是一…

cpuinfo库: 使用Python生成C++接口

文章目录 1. 目的2. 设计3. 生成器: Python 代码4. 结果: C++ 代码1. 目的 背景: cpuinfo 库提供了 CPU 信息的查询, 涵盖了 x86 和 arm 等常见的指令集架构, 可以提供自行实现的 CPU 基础功能函数的正确性验证。自行实现 CPU 基础功能则是为了简化功能、同时提供原汁原味…

详细介绍如何将博客图片从github/gitee批量转移到阿里云图床

背景介绍 我为什么想把博客文章中存储在github种的图片转移到阿里云呢? 存储在github中的图片有时会不稳定,破坏写文章过程中的思路和心流体验。写着写着就发现图片上传又出现问题了,很影响心情,阿里云是付费图床,在国…

【更新中】苹果自家的as汇编器的特色风格(与wasm的不同)

as汇编器是苹果的汇编器,Xcode 生成的代码也是as风格的,而as风格与大部分人在大学里所学的微软的masm风格大相径庭,所以本文会列出二者的不同。不过由于细节太多,没法一次性写出所有的不同,所以会持续更新。 你可能会…

linux常用系统工作命令

前言: 最近又重新抓起linux开始学习起来了,以前干过一段时间的菜鸟运维,对linux操作系统有点浅显的认识,中间又因为工作关系渐渐的又接触不到了,最近的博文算是回忆也当作笔记用,重新开始学习linux系统。 …

MYSQL主从复制和读写分离.1

1、什么是读写分离? 读写分离,基本的原理是让主数据库处理事务性增、删、改操作(insert、update、delete),而从数据库处理select查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 2、为什…

Mysql日志管理与备份恢复

目录 一、Mysql日志管理1、日志的分类1.1 错误日志1.2 通用查询日志1.3 二进制日志1.4 慢查询日志1.5 配置日志文件 2、日志的查询 二、Mysql备份与分类1、数据备份的重要性2、造成数据丢失的原因3、数据库备份的分类3.1 从物理与逻辑的角度划分3.2 从数据库的备份策略角度划分…

【配电网重构】基于SOE算法的多时段随机配电网重构方法【IEEE33节点、IEEE84节点】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

go语言channel(管道)和 select的结合使用

给个小建议:如果是初学者,建议把基础知识朗读一遍,有个大概印象,后面思考多了,就会“由量变达到质变”,从而有所顿悟。 目录 一、基础知识二、例子11、管道ch的缓冲区为10,select中有case读取管…

基于stm32物联网开发板(2)--LCD屏幕

基于stm32物联网开发板(2)–LCD屏幕 LCD应用展示: LCD屏幕应用 1.概述 屏幕尺寸为1.3寸,分辨率240*240,颜色格式RGB565,驱动IC:ST7789VW;超大可视角度:大于160(显示屏中可视角度最大的一种屏幕)&#xff1…