【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.pswp.cn/pingmian/71658.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/71658.shtml
英文地址,請注明出處:http://en.pswp.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 集成測試 一、知識回顧 在進行…