【Pandas】pandas DataFrame droplevel

Pandas2.2 DataFrame

Reshaping sorting transposing

方法描述
DataFrame.droplevel(level[, axis])用于**从 DataFrame 的索引(行或列)中删除指定层级(level)**的方法

pandas.DataFrame.droplevel()

pandas.DataFrame.droplevel() 是一个用于**从 DataFrame 的索引(行或列)中删除指定层级(level)**的方法。它通常用于处理具有多级索引(MultiIndex)的 DataFrame,可以灵活地移除不需要的索引层级。


📌 方法签名
DataFrame.droplevel(level, axis=0)

🔧 参数说明
参数类型说明
levelint、str 或 list of int/str要删除的索引层级,可以是层级编号(从 0 开始)或层级名称
axis{0/'index', 1/'columns'},默认为 0指定操作的是行索引(0)还是列索引(1

✅ 返回值
  • 返回一个新的 DataFrame,其中指定的索引层级被删除;
  • 原始数据不会被修改,除非设置 inplace=True

🧪 示例代码及结果
示例 1:基本用法 - 删除行索引中的某一层
import pandas as pd
import numpy as np# 创建一个多级行索引 DataFrame
arrays = [['A', 'A', 'B', 'B'],['one', 'two', 'one', 'two']
]
index = pd.MultiIndex.from_arrays(arrays, names=('outer', 'inner'))
df = pd.DataFrame({'data': [1, 2, 3, 4]}, index=index)print("Original DataFrame:")
print(df)
输出:
                data
outer inner        
A     one          1two          2
B     one          3two          4
# 删除 inner 层索引
df_dropped = df.droplevel('inner')
print("\nAfter droplevel('inner'):")
print(df_dropped)
输出:
       data
outer       
A         1
A         2
B         3
B         4

示例 2:删除多个层级
# 创建一个多级列索引 DataFrame
arrays = [['X', 'X', 'Y', 'Y'],['a', 'b', 'a', 'b']
]
columns = pd.MultiIndex.from_arrays(arrays, names=('group', 'sub'))
df_multi_col = pd.DataFrame(np.random.randn(2, 4), columns=columns)print("Original Multi-column DataFrame:")
print(df_multi_col)
输出示例(随机数):
group          X                   Y          
sub            a         b         a         b
0       0.496714 -0.138264  0.647689  1.523030
1      -0.234137  1.579213  0.767435 -0.469474
# 删除列索引中的 'sub' 层
df_dropped_cols = df_multi_col.droplevel('sub', axis=1)
print("\nAfter droplevel('sub', axis=1):")
print(df_dropped_cols)
输出示例:
group         X         Y
0      0.496714  0.647689
1     -0.234137  0.767435

示例 3:通过层级编号删除
# 使用层级编号删除 outer 层(level=0)
df_dropped_by_index = df.droplevel(0)
print("\nAfter droplevel(0):")
print(df_dropped_by_index)
输出:
       data
inner      
one       1
two       2
one       3
two       4

🧠 应用场景
场景说明
简化多级索引结构移除不必要的索引层级以提升可读性
准备数据导出在输出到 CSV、Excel 等格式前清理索引
重塑数据结构配合 stack() / unstack() 进行更复杂的索引变换
数据分析前预处理清理冗余索引层级以便后续分析

⚠️ 注意事项
  • droplevel() 不会修改原始数据,除非设置 inplace=True
  • 可以通过层级名或层级编号进行删除;
  • 支持一次删除多个层级(传入列表);
  • 适用于行索引(axis=0)和列索引(axis=1);
  • 如果删除后只剩一个层级,索引将变为普通 Index 而非 MultiIndex

✅ 总结对比
方法是否推荐使用说明
droplevel(level)✅ 推荐快速删除指定索引层级
droplevel(level, axis=1)✅ 推荐删除列索引层级

你可以根据实际需求选择删除行或列索引中的特定层级,从而更好地控制数据结构和索引布局。

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

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

相关文章

Delivering Arbitrary-Modal Semantic Segmentation(CVPR2023)任意模态语义分割论文阅读

文章目录 文章研究思路创建了DeLiVER任意模态分割基准数据集统计信息4种模态25个语义类 提出了任意跨模态分割模型CMNeXt自查询中心(Self-Query Hub,SQ-Hub)并行池化混合器(Parallel Pooling Mixer,PPX) 实…

进程控制

一. 进程创建 1.fork的概念与使用 在 Linux 中 fork 可以在一个进程中创建一个新的进程。这个新进程称为子进程&#xff0c;原进程为父进程。使用前需要包含头文件 #include <unistd.h> 。在调用 fork 函数时&#xff0c;子进程与父进程会共享数据和代码&#xff0c;此…

造轮子系列:从0到1打造生产级HTTP客户端,优雅封装OkHttp/HttpClient,支持异步、重试与文件操作

TechZhi HTTP Client Starter 源码特性快速开始1. 添加依赖2. 配置3. 使用 主要功能支持的HTTP方法文件操作功能高级功能配置示例 API使用示例基本请求自定义请求异步请求文件操作示例错误处理 构建和测试依赖说明 本文将介绍一款本人开发的高性能Spring Boot HTTP客户端Starte…

Java过滤器的基本概念

概述 Java 过滤器是 Java EE (Jakarta EE) 中的一种组件&#xff0c;用于在请求到达 Servlet 或 JSP 之前对其进行预处理&#xff0c;或者在响应返回客户端之前对其进行后处理。过滤器主要应用于以下场景&#xff1a; 请求参数过滤和转换字符编码处理身份验证和授权日志记录压…

gbase8s数据库获取jdbc/odbc协议的几种方式

PROTOCOLTRACEFILED:\sqltrace1.log;PROTOCOLTRACE5 jdbc 参数 &#xff0c;明文协议&#xff0c;并发时 会错乱&#xff0c;适合单线程调试 SQLIDEBUGC:\Users\lenovo\Desktop\sqlidebug.log1 jdbc参数&#xff0c;密文协议&#xff0c;需使用解密工具解析&#xff0c;解析…

【android bluetooth 框架分析 04】【bt-framework 层详解 7】【AdapterProperties介绍】

前面我们提到了 蓝牙协议栈中的 Properties &#xff0c; 这篇文章是 他的补充。 【android bluetooth 框架分析 04】【bt-framework 层详解 6】【Properties介绍】 在 AOSP&#xff08;Android Open Source Project&#xff09;中&#xff0c;AdapterProperties 是一个 Java…

C盘瘦身?

突然发现回收站底部有横幅辣眼睛&#xff01; 点击深度清理跳转C盘瘦身 点击一键瘦身跳转支付 回收站右键还有菜单 回收站右键可以通过设置关闭 回收站底部横幅关不了&#xff01; 流氓没人管了吗&#xff1f;

用户通知服务,轻松实现应用与用户的多场景交互

用户在使用应用时&#xff0c;经常想要了解应用程序在执行的操作&#xff0c;如下载完成、新邮件到达、发布即时的客服支付通知等&#xff0c;这些通知除了携带基本的文本图片信息外&#xff0c;最好还可以支持文件上传下载进度场景下的进度条通知&#xff0c;以及点击通知栏可…

苹果获智能钱包专利,Find My生态版图或再扩张:钱包会“说话”还能防丢

苹果公司近日成功获批一项突破性专利&#xff0c;揭示了一种支持Find My网络的全新智能钱包设计方案。该钱包不仅能智能管理用户的信用卡、身份证等实体卡片&#xff0c;更具备了追踪定位和通过扬声器发声提醒的能力&#xff0c;有望成为苹果“查找”&#xff08;Find My&#…

当机床开始“思考”,传统“制造”到“智造”升级路上的法律暗礁

——首席数据官高鹏律师团队创作&#xff0c;AI辅助 一、被时代推着走的工厂&#xff1a;从“铁疙瘩”到“智能体”的阵痛 某汽车零部件厂的李厂长至今记得三年前的凌晨。为了赶上新能源车企的订单&#xff0c;厂里咬牙引进了两条智能生产线&#xff0c;可调试第三天&#xff…

概率基础——不确定性的数学

第05篇&#xff1a;概率基础——不确定性的数学 写在前面&#xff1a;大家好&#xff0c;我是蓝皮怪&#xff01;前几篇我们聊了统计学的基本概念、数据类型、描述性统计和数据可视化&#xff0c;今天我们要进入统计学的另一个重要基础——概率论。你有没有想过&#xff0c;为什…

爬虫遇到base64编码(非常规版)

一.特征 从 Base64 的核心特性入手&#xff0c;比如它的编码原理&#xff08;将二进制数据转换为 ASCII 字符集&#xff09;和字符集的组成&#xff08;A-Z、a-z、0-9、、/ 和 &#xff09;。这是 Base64 最基础的特点&#xff0c;几乎每个回答都应该包括这些内容。基于 64 个…

节拍定时器是什么?

节拍定时器是什么&#xff1f; 节拍定时器&#xff08;SysTick Timer&#xff09;是嵌入式系统中用于提供精确时间基准的核心硬件组件&#xff0c;尤其在ARM Cortex-M系列处理器中广泛应用。以下是其关键特性和应用的综合说明&#xff1a; ⚙️ 一、核心概念与工作原理 硬件基…

SDPA(Scaled Dot-Product Attention)详解

SDPA&#xff08;Scaled Dot-Product Attention&#xff09;详解 SDPA&#xff08;Scaled Dot-Product Attention&#xff0c;缩放点积注意力&#xff09;是 Transformer 模型的核心计算单元&#xff0c;最早由 Vaswani 等人在 2017 年的论文《Attention Is All You Need》提出…

java通过hutool工具生成二维码实现扫码跳转功能

实现&#xff1a; 首先引入zxing和hutool工具依赖 <dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.2</version></dependency><dependency><groupId>com.google.zxi…

数据库数据导出到Excel表格

1.后端代码 第一步&#xff1a;UserMapper定义根据ID列表批量查询用户方法 // 批量查询用户信息List<User> selectUserByIds(List<Integer> ids); 第二步&#xff1a;UserMapper.xml写动态SQL&#xff0c;实现批量查询用户 <!--根据Ids批量查询用户-->&l…

Altera系列FPGA基于ADV7180解码PAL视频,纯verilog去隔行,提供2套Quartus工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目Altera系列FPGA相关方案推荐我这里已有的PAL视频解码方案 3、设计思路框架工程设计原理框图输入PAL相机ADV7180芯片解读BT656视频解码模块图像缓存架构输出视频格式转…

【教程】Windows安全中心扫描设置排除文件

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 目录 背景说明 解决方法 背景说明 即使已经把实时防护等设置全都关了&#xff0c;但Windows还是会不定时给你扫描&#xff0c;然后把风险软件给删了…

OPenCV CUDA模块立体匹配------对立体匹配生成的视差图进行双边滤波处理类cv::cuda::DisparityBilateralFilter

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::cuda::DisparityBilateralFilter 是 OpenCV CUDA 模块中的一个类&#xff0c;用于对立体匹配生成的视差图进行双边滤波处理。这种滤波方法可…

自然语言处理期末复习

自然语言处理期末复习 一单元 自然语言处理基础 两个核心任务&#xff1a; 自然语言理解&#xff08;NLU, Natural Language Understanding&#xff09; 让计算机“读懂”人类语言&#xff0c;理解文本的语义、结构和意图。 典型子任务包括&#xff1a;分词、词性标注、句法分…