【Pandas】pandas Series unstack

Pandas2.2 Series

Computations descriptive stats

方法描述
Series.argsort([axis, kind, order, stable])用于返回 Series 中元素排序后的索引位置的方法
Series.argmin([axis, skipna])用于返回 Series 中最小值索引位置的方法
Series.argmax([axis, skipna])用于返回 Series 中最大值索引位置的方法
Series.reorder_levels(order)用于重新排列 Series 中多层索引(MultiIndex)层级顺序的方法
Series.sort_values(*[, axis, ascending, …])用于对 Series 中的值进行排序的方法
Series.sort_index(*[, axis, level, …])用于根据索引对 Series 进行排序
Series.swaplevel([i, j, copy])用于交换 MultiIndex 中的两个级别
Series.unstack([level, fill_value, sort])用于将 MultiIndex 中的一个或多个级别“旋转”为列

pandas.Series.unstack

pandas.Series.unstack 方法用于将 MultiIndex 中的一个或多个级别“旋转”为列,从而将长格式数据转换为宽格式数据。这对于数据分析和可视化非常有用,可以更方便地查看和操作多级索引的数据。

参数说明
  • level:整数、字符串或列表,默认为 -1(即最内层)。指定要旋转的级别,可以是级别的位置(从 0 开始)或级别的名称。如果传递一个列表,则会旋转多个级别。
  • fill_value:标量值,默认为 None。用于填充因旋转而产生的缺失值。如果未指定,则缺失值将被设置为 NaN。
  • sort:布尔值,默认为 False。如果为 True,则在返回结果之前对行索引进行排序。
示例及结果
import pandas as pd# 创建一个带有 MultiIndex 的 Series
arrays = [['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'],['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two']]
index = pd.MultiIndex.from_arrays(arrays, names=['first', 'second'])
s = pd.Series(range(8), index=index)print("原始 Series:")
print(s)# 使用 unstack 将 'second' 级别旋转为列
unstacked_s = s.unstack(level='second', fill_value=0)print("\n旋转后的 DataFrame:")
print(unstacked_s)
输出结果
原始 Series:
first  second
bar    one       0two       1
baz    one       2two       3
foo    one       4two       5
qux    one       6two       7
dtype: int64旋转后的 DataFrame:
second  one  two
first
bar       0    1
baz       2    3
foo       4    5
qux       6    7

通过上述代码和输出结果可以看到,unstack 方法将 MultiIndex 中的 second 级别旋转为列,并且可以通过设置不同的参数来控制旋转的级别、缺失值的填充以及是否对行索引进行排序。

注意事项
  • 如果旋转后产生了缺失值,可以通过 fill_value 参数指定填充值。
  • 如果 MultiIndex 中有重复的组合键,在旋转时可能会导致错误或不明确的结果。确保数据中没有重复的组合键。
  • unstack 操作的逆操作是 stack,可以将宽格式数据转换回长格式数据。
多级别旋转示例

如果你想旋转多个级别,可以传递一个包含级别名称或位置的列表:

# 创建一个带有三层 MultiIndex 的 Series
arrays = [['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'],['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two'],['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']]
index = pd.MultiIndex.from_arrays(arrays, names=['first', 'second', 'third'])
s = pd.Series(range(8), index=index)print("原始 Series:")
print(s)# 使用 unstack 将 'second' 和 'third' 级别旋转为列
unstacked_s_multi = s.unstack(['second', 'third'], fill_value=0)print("\n旋转多个级别的 DataFrame:")
print(unstacked_s_multi)
输出结果
原始 Series:
first  second  third
bar    one     a        0two     b        1
baz    one     c        2two     d        3
foo    one     e        4two     f        5
qux    one     g        6two     h        7
dtype: int64旋转多个级别的 DataFrame:
second one two one two one two one two
third    a   b   c   d   e   f   g   h
first
bar      0   1   0   0   0   0   0   0
baz      0   0   2   3   0   0   0   0
foo      0   0   0   0   4   5   0   0
qux      0   0   0   0   0   0   6   7

在这个例子中,unstack 方法将 secondthird 两个级别同时旋转为列,生成了一个更宽的 DataFrame。

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

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

相关文章

大模型发展历程

大模型的发展历程 大语言模型的发展历程一、语言模型是个啥?二、语言模型的 “进化史”(一)统计语言模型(SLM)(二)神经语言模型(NLM)(三)预训练语…

springboot项目使用中创InforSuiteAS替换tomcat

springboot项目使用中创InforSuiteAS替换tomcat 学习地址一、部署InforSuiteAS1、部署2、运行 二、springboot项目打包成war包 特殊处理1、pom文件处理1、排除内嵌的tomcat包2、新增tomcat、javax.servlet-api3、打包格式设置为war4、打包后的项目名称5、启动类修改1、原来的不…

Seata

Seata是一款开源的分布式事务解决方案,由阿里巴巴发起并维护,旨在帮助应用程序管理和协调分布式事务。以下是对Seata的详细介绍: 一、概述 Seata致力于提供高性能和简单易用的分布式事务服务,它为用户提供了AT、TCC、SAGA和XA等…

Pytest自动化框架

Pytest简单介绍 下载pytest pip install pytest 第一章:Pytest console命令 默认需要test开头的py模块,test_开头的方法 1.pytest 执行pytest命令会自动匹配到test开头或者结尾的文件 将其作为测试用例文件执行,在测试用例文件中自动匹配到test开…

【spring】注解版

1.管理bean 之前我们要想管理bean都是在xml文件中将想要添加的bean手动添加进ioc容器中,这样太过麻烦了,在 Java 开发里,针对一些较为繁琐的操作,通常会有相应的简化方式,这个也不例外,就是spring提供的注…

RV1126+FFMPEG多路码流监控项目

一.项目介绍: 本项目采用的是易百纳RV1126开发板和CMOS摄像头,使用的推流框架是FFMPEG开源项目。这个项目的工作流程如下(如上图):通过采集摄像头的VI模块,再通过硬件编码VENC模块进行H264/H265的编码压缩,并把压缩后的…

13.IIC-EEPROM(AT24C02)

1.为什么需要EEPROM? 在单片机开发中,断电数据保存是常见的需求。例如,智能家居设备的用户设置、电子秤的校准参数等都需要在断电后仍能保留。AT24C02作为一款IIC接口的EEPROM芯片,具备以下优势: 非易失性存储:断电后…

ubuntu22.04安装P104-100一些经验(非教程)

一、版本: 系统:ubuntu-22.04.5-desktop-amd64.iso Nvidia 驱动:NVIDIA-Linux-x86_64-570.124.04.run。官网下载即可 二、经验 1、通用教程⭐ 直接关键词搜“ubuntu p104”会有一些教程,比如禁用nouveau等 安装参考&#xff1a…

TCP7680端口是什么服务

WAF上看到有好多tcp7680端口的访问信息 于是上网搜索了一下,确认TCP7680端口是Windows系统更新“传递优化”功能的服务端口,个人理解应该是Windows利用这个TCP7680端口,直接从内网已经具备更新包的主机上共享下载该升级包,无需从微…

OSI七大模型 --- 发送邮件

我想通过电子邮件发送一张照片给我的朋友。从我开始写邮件到发送成功,按照这个顺序讲一下我都经历了OSI模型的哪一层,对应的层使用了什么样的协议? 完整流程示例(补充物理层细节) 假设你通过Wi-Fi发送邮件&#xff1a…

LINUX网络基础 [一] - 初识网络,理解网络协议

目录 前言 一. 计算机网络背景 1.1 发展历程 1.1.1 独立模式 1.1.2 网络互联 1.1.3 局域网LAN 1.1.4 广域网WAN 1.2 总结 二. "协议" 2.1 什么是协议 2.2 网络协议的理解 2.3 网络协议的分层结构 三. OSI七层模型(理论标准) …

【LLms】关键词提取

1. 停用词 在文本处理和信息检索领域,停用词(Stop Words)是指在文本中出现频率较高,但通常不包含实际语义信息或对语义理解贡献较小的词汇。这些词汇通常是一些常见的功能词,如冠词、介词、连词、代词、感叹词、助动词…

1998-2022年各地级市三次产业占比/地级市国内生产总值构成/地级市第一产业占比、第二产业占比、第三产业占比数据(全市)

1998-2022年各地级市三次产业占比/地级市国内生产总值构成/地级市第一产业占比、第二产业占比、第三产业占比数据(全市) 1、时间:1998-2022年 2、指标:第一产业占比、第二产业占比、第三产业占比 3、来源:城市统计年…

基于STM32的简易出租车计费设计(Proteus仿真+程序+设计报告+原理图PCB+讲解视频)

这里写目录标题 1.主要功能资料下载链接:2.仿真3. 程序4. 原理图PCB5. 实物图6. 设计报告7. 下载链接 基于STM32的简易出租车计费设计(Proteus仿真程序设计报告原理图PCB讲解视频) 仿真图proteus 8.9 程序编译器:keil 5 编程语言&#xff1…

HAL库启动ADC的三个函数的区别

HAL_ADC_Start 应该是启动ADC转换的最基本函数。只是启动一次转换,然后需要用户自己去查询转换是否完成,或者可能只是单次转换。比如,当调用这个函数后,ADC开始转换,但程序需要不断检查某个标志位来看转换是否完成&am…

EXIT原理和使用

要用到的控制器NVIC(中断总控制器)、EXIT(外部中断控制器) (EXIT是NVIC是下属) GPIO外部中断简图 EXIT的基本概念 EXIT主要特性 EXTI工作原理框图(从输入线开始看) 6个寄存器 EXTI和IO的映射关系 AFIO简介 EXTI与IO对应关系 如…

经典核密度估计(Kernel Density Estimation):从直觉到数学

经典核密度估计(Kernel Density Estimation):从直觉到数学 作为一名在大模型时代进入深度学习领域的研究者,你可能对 Transformer、扩散模型等现代技术驾轻就熟。然而,在阅读一些生成模型的文献(如 Explic…

Halcon 算子 一维码检测识别、项目案例

首先我们要明白码的识别思路 把窗口全部关闭读取新的图片图像预处理创建条码模型设置模型参数搜索模型获取条码结果显示条码结果 图像预处理和条码增强 对比度太低: scale_image(或使用外部程序scale_image_range),增强图像的对比度图像模糊…

vue-cli3+vue2+elementUI+avue升级到vite+vue3+elementPlus+avue总结

上一个新公司接手了一个vue-cli3vue2vue-router3.0elementUI2.15avue2.6的后台管理项目,因为vue2在2023年底已经不更新维护了,elementUI也只支持到vue2,然后总结了一下vue3的优势,最后批准升级成为了vitevue3vue-router4.5element…

SpringBoot实战(三十五)微服务集成OAuth2.0(UAA)

目录 一、知识回顾1.1 什么是 OAuth2 协议?1.2 OAuth2 的4个角色1.3 OAuth2 的3种令牌1.4 OAuth2 的5种认证方式1.5 OAuth2 内置接口地址 二、UAA介绍2.1 概述2.2 UAA的主要功能2.3 UAA 的应用场景 三、微服务集成3.1 集成示例介绍3.2 集成测试 一、知识回顾 在进行…