详解 Pandas 的 reset_index 函数

Pandas 的 reset_index 函数主要分为 Series 对象的 reset_index() 和 DataFrame 对象的 reset_index(),功能是用来重置索引的,二者的用法有所不同。

一、Series 的 reset_index()

1. 数据准备

import pandas as pdexaminations = pd.DataFrame({"student_id": [1, 1, 1, 2, 1, 1, 13, 13, 13, 2, 1],"subject_name": ["Math", "Physics", "Programming", "Programming", "Physics", "Math", "Math", "Programming","Physics", "Math", "Math"]
})
print(df)
    student_id subject_name
0            1         Math
1            1      Physics
2            1  Programming
3            2  Programming
4            1      Physics
5            1         Math
6           13         Math
7           13  Programming
8           13      Physics
9            2         Math
10           1         Math

2. 方法声明

def reset_index(self,level: IndexLabel | None = None, # 复合索引时,指定删除哪一级,默认删除所有*,drop: bool = False, # 是否删除原索引列name: Level = lib.no_default, # 重命名 Series 数值列inplace: bool = False, # 是否在原对象上操作allow_duplicates: bool = False, # 是否允许重复) -> DataFrame | Series | None

3. 基本使用

# 1.将 DataFrame 聚合成 Series
res = examinations.groupby(by=["student_id", "subject_name"]).size()
print(res, type(res)) # MultiIndex(names=['student_id', 'subject_name'])
student_id  subject_name
1           Math            3Physics         2Programming     1
2           Math            1Programming     1
13          Math            1Physics         1Programming     1
dtype: int64 <class 'pandas.core.series.Series'>
# 2.重置索引,使用默认参数
print(res.reset_index(), type(res.reset_index()))
   student_id subject_name  0
0           1         Math  3
1           1      Physics  2
2           1  Programming  1
3           2         Math  1
4           2  Programming  1
5          13         Math  1
6          13      Physics  1
7          13  Programming  1<class 'pandas.core.frame.DataFrame'>
# 3.重置索引,并命名数值列
print(res.reset_index(name="attended_exams"))
   student_id subject_name  attended_exams
0           1         Math               3
1           1      Physics               2
2           1  Programming               1
3           2         Math               1
4           2  Programming               1
5          13         Math               1
6          13      Physics               1
7          13  Programming               1
# 4.重置索引,并删除原索引列
print(res.reset_index(drop=True), type(res.reset_index(drop=True)))
0    3
1    2
2    1
3    1
4    1
5    1
6    1
7    1
dtype: int64 <class 'pandas.core.series.Series'>
# 5.指定重置复合索引中的某一级索引
print(res.reset_index(level="student_id"))
              student_id  0
subject_name               
Math                   1  3
Physics                1  2
Programming            1  1
Math                   2  1
Programming            2  1
Math                  13  1
Physics               13  1
Programming           13  1

二、DataFrame 的 reset_index()

1. 数据准备

import pandas as pddf = pd.DataFrame(data={"Jan": [1, 2, 3],"Feb": [4, 5, 6],"Mar": [7, 8, 9]
}, index=["a", "b", "c"])print(df)
   Jan  Feb  Mar
a    1    4    7
b    2    5    8
c    3    6    9

2. 方法声明

def reset_index(self,level: IndexLabel | None = None, # 复合索引时,指定删除哪一级,默认删除所有*,drop: bool = False, # 是否删除原索引列inplace: bool = False, # 是否在原对象上操作col_level: Hashable = 0,col_fill: Hashable = "",allow_duplicates: bool | lib.NoDefault = lib.no_default,names: Hashable | Sequence[Hashable] | None = None, # 重命名原索引列,默认名为 Index) -> DataFrame | None

3. 基本使用

# 1.重置索引,使用默认参数
print(df.reset_index())
  index  Jan  Feb  Mar
0     a    1    4    7
1     b    2    5    8
2     c    3    6    9
# 2.重置索引,并删除原索引列
print(df.reset_index(drop=True))
   Jan  Feb  Mar
0    1    4    7
1    2    5    8
2    3    6    9
# 3.重置索引,并重命名原索引列
print(df.reset_index(names="A"))
   A  Jan  Feb  Mar
0  a    1    4    7
1  b    2    5    8
2  c    3    6    9

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

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

相关文章

【操作系统】01.冯·诺伊曼体系结构

上面这张图就是我们经常能在各种教材中看到的冯诺伊曼体系结构。我们常见的计算机&#xff0c;如笔记本。我们不常见的计算机&#xff0c;如服务器&#xff0c;大部分都遵守冯诺依曼体系。 一、认识设备 输入设备&#xff1a; 键盘、鼠标、网卡、磁盘、摄像头…… 输出设备&a…

新峰商城之订单(一):确认页面开发

新峰商城订单从生成到处理结束&#xff0c;主要以下几个流程&#xff1a; &#xff08;1&#xff09;提交订单&#xff08;商城用户发起&#xff09; &#xff08;2&#xff09;订单入库&#xff08;后台逻辑&#xff09; &#xff08;3&#xff09;支付订单&#xff08;商城…

C++_多态

C_多态 多态的概念 通俗来讲&#xff0c;就是多种形态。多态分为编译时多态&#xff08;静态多态&#xff09;和运行时多态&#xff08;动态多态&#xff09;。 编译时多态主要就是函数重载和函数模板&#xff0c;他们传不同类型的参数就可以调用不同的函数&#xff0c;通过…

简单有效关于msvcp140.dll丢失的解决方法,msvcp140.dll

这篇文章将和大家分享几种msvcp140.dll丢失的解决方法&#xff0c;分析解决方法为什么能够通过这种方法进行修复成功&#xff0c;有效的将丢失的msvcp140.dll文件进行修复完成。 msvcp140.dll丢失&#xff1f;简单有效的解决途径 一、重新安装相关软件 原理 许多应用程序在安…

研究生数学建模竞赛E题思路模型参考文献高速公路应急车道紧急启用模型——高速公路饱和路段动态应急车道开放决策模型研究

1 概述 动态应急车道 ( Hard Shoulder Running ) 作为 调整路段交通流运行现状的重要管理手段&#xff0c; 可以在短时间内提供道路供给&#xff0c; 有效提升瓶颈路段的通行 能力。 早在 21 世纪初 &#xff0c; 欧美国家就已经通过开放 应急车道缓解的方式来解决路段的交…

2024最受人追捧的电脑远程控制软件推荐!首选这五款!好用、连接稳定、安全性高!

在2024年&#xff0c;电脑远程控制软件市场上涌现了众多受欢迎且功能强大的选择。 以下是根据最新信息推荐的五款好用、连接稳定、安全性高的电脑远程控制软件&#xff1a; 1. 安企神 特点&#xff1a;它是全球知名的远程控制软件&#xff0c;以其稳定性和可靠性著称。 它支…

C++——初步认识C++和namespace的用法

1.编程语言排行榜 我们通过排行可以看出 C在变成语言中还是占据着重要的地位 2.C在工作领域中的应用 1.PC客户端开发。⼀般是开发Windows上的桌面软件&#xff0c;比如WPS之类的&#xff0c;技术栈的话⼀般是C和 QT&#xff0c;QT 是⼀个跨平台的 C图形用户界面&#xff08;G…

sourceTree使用脚本一键push代码到gerrit

问题 在gerrit,我们无法直接把代码push到对应的分支。需要把代码push到 HEAD:refs/for/branch,review通过后再submit到分支。所以无法直接使用sourceTree上的推送按钮来push代码。但是可以通过自定义操作和脚本来实现这一功能。 脚本编写 新建文本文档写入以下内容&#xff…

fmql之ubuntu添加dhcp服务

按照官方指示&#xff1a;【在文末】 2024-08-22 buildroot linux 使用wpa_supplicant -B -i wlan0 切换WIFI 设备之后无法上网的问题。解决方法&#xff0c;使用udhcpc -i wlan0 命令-CSDN博客 网口连接路由器&#xff0c;然后发现路由器分配了ip&#xff0c;但是板卡没有配置…

VulnHub-Narak靶机笔记

Narak靶机笔记 概述 Narak是一台Vulnhub的靶机&#xff0c;其中有简单的tftp和webdav的利用&#xff0c;以及motd文件的一些知识 靶机地址&#xff1a; https://pan.baidu.com/s/1PbPrGJQHxsvGYrAN1k1New?pwda7kv 提取码: a7kv 当然你也可以去Vulnhub官网下载 一、nmap扫…

写作练习(一)

一、reply Z-Library The aim is to express gratitude and practice writing, and as a record. 二、Original letter As a college student of computer and a blogger, Z-Library is always a part of my study, which provide many books that I need pay a lost of time …

安捷伦Agilent/keysight 53220A参数资料 通用频率计 计数器

Agilent 53220A&#xff0c;Keysight 53220A&#xff0c;通用频率计数器/计时器&#xff0c;350 MHz&#xff0c;12 位&#xff0c;100 ps 53220A 350 MHz 通用频率计数器/计时器是一款双通道频率计数器&#xff0c;能够执行所需的全部频率和时间间隔测量。它可以添加可选的射…

突破常规:如何利用动态系统思维彻底变革你的团队!

引言 在现代社会中&#xff0c;变化是唯一不变的。面对快速发展的科技和瞬息万变的市场环境&#xff0c;企业和开发团队必须具备适应性和灵活性。动态系统思维作为一种理解和应对复杂系统中变化的方法&#xff0c;提供了有效的解决方案。本文将探讨动态系统思维在敏捷方法中的应…

load jsonl File with OpenAI API request results to pandas data.frame

题意&#xff1a;将包含 OpenAI API 请求结果的 jsonl 文件加载到 pandas DataFrame 中 问题背景&#xff1a; I have a large data set containing around 500k observation. It has a string variable that I want to create an embedding for. I used the OpenAI API to cr…

AI入门系列 | 如何优雅地下载最前沿的模型?

​简介 一片白云横谷口&#xff0c;几多归鸟尽迷巢。 小伙伴们好&#xff0c;我是微信公众号《小窗幽记机器学习》的小编&#xff1a;卖铁观音的小男孩。本系列主要基于过往经历&#xff0c;总结当时自身环境中实操经验。倘若能够顺便帮到他人&#xff0c;也是善莫大焉。 本文…

[已更新]2024数学建模研赛华为杯E题详细思路代码成品文章研究生数学建模数模辅导

截止2024.8.21 12点 已更新e全部小问的建模和问题一的代码 ####https://docs.qq.com/doc/DVU9YYUFLWlNOY3pyE题: 问题1&#xff1a;统计四个观测点的交通流参数随时间的变化规律 为了统计交通流参数&#xff08;如车流密度、流量和速度&#xff09;&#xff0c;首先需要从视…

猫咪检测系统源码分享

猫咪检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

Easypoi模板导出

Easypoi模板导出 优点 快速导出&#xff1a;使用预定义的Excel模板&#xff0c;可以快速导出数据&#xff0c;特别是在数据量大的情况下。简化代码&#xff1a;通过模板导出&#xff0c;减少了编写大量POI代码的需要&#xff0c;使得代码更简洁易懂。灵活性&#xff1a;模板可…

Camunda如何共享流程定义但不共享流程实例?

文章目录 一、项目场景二、问题描述三、解决方案方案一&#xff1a;官方实例化共享定义的方法1. 部署共享定义2. 在查询中包含共享的定义3. 实例化共享定义 方案二&#xff1a;自定义TenantIdProvider方法&#xff0c;将租户id作为变量添加到启动的实例中1. 采用自定义的Tenant…

PHP API 框架:构建高效API的利器

在当今快速发展的互联网时代&#xff0c;API&#xff08;应用程序编程接口&#xff09;已成为连接不同应用程序和服务的关键。PHP&#xff0c;作为一种流行的服务器端脚本语言&#xff0c;提供了多种强大的框架来简化API的开发。本文将介绍PHP API框架的重要性&#xff0c;以及…