Pandas 中用於多級或分層數據的 MultiIndex

Pandas 中用於多級或分層數據的 MultiIndex

Pandas 中的 MultiIndex 是一個多級或分層對象,允許您在索引中選擇多個行和列。它還使您能夠創建複雜的數據分析和操作,尤其是在處理高維數據時。在本教程中,我將探索 Pandas 的 MultiIndex 功能。您可以在本博客底部觀看本教程的完整視頻。

這裡的想法是我們有一個也包含層次結構的索引。如果您以前使用過 Pandas,您就會知道Pandas 的數據框包含一個索引,因此我們將為其添加額外的層。這將使索引和重塑數據變得更容易,具體取決於您是否確實有數據層次結構。

例如,我們將使用著名的 Gapminder 數據集,這裡確實是一個 MultiIndex。我們有層級,所以一個大陸鑽到國家,每個國家可以鑽到多年。所以,我們可以操縱這個索引,當我們使用這個 MultiIndex 時,事情會變得更容易編碼。我們將研究切片並重塑 Gapminder 數據集。

目錄

如何在 Pandas 中使用 MultiIndex

我們將使用 Gapminder 數據集。如果你沒有安裝這個,你想做一個 PIP 安裝 Gapminder。我也打算引入 Pandas。我正在使用 Python 的 Anaconda 發行版。在這種情況下,Pandas 將已經安裝。我們做一個 import Gapminder,然後我們會看看這個數據。

Pandas 中用於多級或分層數據的 MultiIndex

正如您在這裡看到的,我們又一次有了索引或層次結構。我應該說我們有一個大陸,一個國家,然後是一年。目前,索引只是像這樣的數字,我們現在要設置我們自己的索引。我們要做的就是使用 Gapminder。我們要設置索引。我們將在大陸、國家和年份上設置它,就地等於 ( = ) true

Pandas 中用於多級或分層數據的 MultiIndex

這只是保存結果,所以我們不用兩次調用變量,只是效率高一點。現在,您會看到這裡有索引(內容、國家/地區、年份),這是我們的多索引。

我們可以在這裡做幾件事。比方說,我想要歐洲大陸的一切。我想過濾或切片這個數據框。我可以使用gapminder.loc,然後輸入歐洲。您可能熟悉 loc。從 Pandas 的其他情況來看,當我們通過索引進行操作時,它會更容易工作。

Pandas 中用於多級或分層數據的 MultiIndex

現在這存在於層次結構中。比方說,我們只想要來自英國的數據。看起來我們可以只對它進行切片,但這將是一個問題,因為當我們索引它時,我們只能使用層次結構。我們需要從第一層開始,然後鑽到第二層、第三層等等。

如果我想包括多個級別,我能做的就是在這里傳遞它。我要去歐洲,然後是英國。我什至可以更進一步,輸入 1997。現���,我們可以看到在這種情況下該行的結果。

Pandas 中用於多級或分層數據的 MultiIndex

Pandas 中 MultiIndex 的另一個好處是重塑數據要容易得多。我可以做gapminder_pivot然後gapminder.unstack。如果出於某種原因我需要重塑這個數據集,我將打印它,你會看到現在我們有了大陸、國家和年份以及這些列。

Pandas 中用於多級或分層數據的 MultiIndex

現在,假設我想在相反的方向上這樣做。我需要做的就是 unpivot 並且我們要做gapminder_pivot。如果那是取消堆疊,那麼這就是堆疊 gapminder_unpivot。

Pandas 中用於多級或分層數據的 MultiIndex

現在,如果我想擺脫這個索引並重置它並將其更改為其他內容怎麼辦?在這種情況下,我需要做的就是 gapminder_unpivot。我們要重置索引。我們將再次使它就位。我們不必自救。只是效率高了一點。然後,gapminder_unpivot。

打印出來,我們就回到了原始數據,我們有了索引。數字從零開始,因為 Python 是基於零的索引。

Pandas 中用於多級或分層數據的 MultiIndex



LuckyTemplates 中的 Python:如何在 LuckyTemplates 數據報告中安裝和設置Python 腳本
LuckyTemplates With Python Scripting To Create Date Tables

結論

Pandas 最初是以面板數據命名的。它實際上是為了處理面板數據,面板數據是一種具有多個類別的特定類型的時間序列數據。在那種情況下,擁有層次結構真的很有意義,對吧?

如果您正在處理唯一行並嘗試查找多列,這將非常有效。

就性能而言,如果您要合併,索引可能不是必需的,但我們沒有在這里合並。我們只是操作,訪問,索引,重塑等。但是,編碼效率絕對是一個很大的好處。

這就是 Pandas 中 MultiIndex 的所有內容。我希望這是你可以使用的東西。你今天學到了一些關於 Pandas 的新知識。

一切順利!


什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

如何在 R 中保存和加載 RDS 文件

如何在 R 中保存和加載 RDS 文件

您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。

回顧前 N 個工作日——DAX 編碼語言解決方案

回顧前 N 個工作日——DAX 編碼語言解決方案

在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。

LuckyTemplates 篩選上下文簡介

LuckyTemplates 篩選上下文簡介

在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。

DAX Studio 中數據緩存的物化想法

DAX Studio 中數據緩存的物化想法

本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。

使用 LuckyTemplates 進行業務報告

使用 LuckyTemplates 進行業務報告

如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的