マルチレベルまたは階層データ用の Panda の MultiIndex

マルチレベルまたは階層データ用の Panda の MultiIndex

Pandas の MultiIndex は、インデックス内の複数の行と列を選択できるマルチレベルまたは階層オブジェクトです。また、特に高次元のデータを扱う場合に、高度なデータ分析と操作を作成することもできます。このチュートリアルでは、Pandas の MultiIndex 機能を見ていきます。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。

ここでの考え方は、階層も含むインデックスがあるということです。以前に Pandas を使用したことがある場合は、 Pandas のデータ フレームにインデックスが含まれていることをご存知でしょう。そのため、これに追加のレイヤーを追加します。これにより、実際にデータの階層があるかどうかに応じて、データのインデックス作成と再形成の両方が容易になります。

一例として、有名な Gapminder データ セットを使用します。これは実際に MultiIndex です。階層があるため、大陸が国をドリルダウンし、すべての国が複数年をドリルダウンできます。したがって、このインデックスを操作できるようになり、この MultiIndex を使用するとコーディングがはるかに簡単になります。Gapminder データセットのスライスと再構成について見ていきます。

目次

Pandas で MultiIndex を使用する方法

Gapminder データセットを使用します。これがインストールされていない場合は、PIP インストール Gapminder を実行します。パンダも連れて行きます。私は Python の Anaconda ディストリビューションを使用しています。その場合、Pandas はすでにインストールされています。Gapminder をインポートしてから、このデータを確認します。

マルチレベルまたは階層データ用の Panda の MultiIndex

ここでわかるように、ここにもインデックスまたは階層があります。大陸があり、国があり、そして年があると言うべきでしょう。現在、インデックスはこのように数値だけですが、これから独自のインデックスを設定します。そして、私たちがそれを行う方法は、Gapminder を使用することです。インデックスを設定していきます。大陸、国、年に設定し、inplace = ( = ) true に設定します。

マルチレベルまたは階層データ用の Panda の MultiIndex

これは結果を保存するだけなので、変数を 2 回呼び出す必要がなく、少しだけ効率的になります。ここにインデックス (コンテンツ、国、年) があり、これがマルチインデックスであることがわかります。

ここでできることがいくつかあります。たとえば、ヨーロッパ大陸にあるものすべてが欲しかったとします。このデータ フレームをフィルターまたはスライスしたいと考えています。gapminder.loc を使用して、「ヨーロッパ」と入力します。locについてはご存知かもしれません。Pandas の他の状況から見ると、インデックスによって実行するとはるかに簡単に動作します。

マルチレベルまたは階層データ用の Panda の MultiIndex

これは階層内に存在します。たとえば、英国からのデータのみが必要だったとします。これをスライスするだけで済むように思えますが、これにインデックスを付けると階層の使用に固執してしまうため、これは問題になります。最初のレベルから始めて、2 番目、3 番目などとドリルダウンする必要があります。

複数のレベルを含めたい場合は、それをここに渡すだけです。ヨーロッパ、そしてイギリスもやるつもりです。さらに一歩進めて 1997 と入力することもできます。そして今、この場合のその行の結果がわかります。

マルチレベルまたは階層データ用の Panda の MultiIndex

Pandas の MultiIndex のもう 1 つの優れた点は、データの再形成がはるかに簡単であることです。gapminder_pivot を実行してから、gapminder.unstack を実行できます。何らかの理由でこのデータ セットを再形成する必要がある場合は、これを印刷すると、大陸、国、年が列とともに表示されていることがわかります。

マルチレベルまたは階層データ用の Panda の MultiIndex

さて、それを逆の方向にやりたかったとしましょう。私がする必要があるのはピボットを解除することだけであり、 gapminder_pivotを実行します。それがアンスタッキングである場合、これはスタッキング gapminder_unpivot です。

マルチレベルまたは階層データ用の Panda の MultiIndex

さて、このインデックスを削除してリセットし、別のものに変更したい場合はどうすればよいでしょうか? その場合に必要なのは、gapminder_unpivot だけです。ここでは、reset_indexを実行します。これを再度その場で作成します。それ自体を節約する必要はありません。ほんの少しだけ効率的です。次に、gapminder_unpivot です。

それを印刷すると、元のデータに戻り、インデックスが作成されます。Python はゼロベースのインデックス付けであるため、数値はゼロから始まります。

マルチレベルまたは階層データ用の Panda の MultiIndex



LuckyTemplates の Python: LuckyTemplates データ レポートで Python スクリプトをインストールおよび設定する方法
Python スクリプトを使用して日付テーブルを作成する LuckyTemplates

結論

Pandas は当初、パネル データにちなんで名付けられました。これは実際には、複数のカテゴリを持つ特定の種類の時系列データであるパネル データを操作することを目的としています。その場合、階層を持つことは非常に意味がありますよね?

これは、一意の行を操作し、複数の列を検索する場合に非常にうまく機能します。

パフォーマンスに関する限り、マージする場合はインデックスは必要ない可能性がありますが、ここではマージしませんでした。私たちは操作、アクセス、インデックス作成、再構成などを行っているだけでしたが、コーディングの効率化は間違いなく大きなメリットです。

これで Pandas の MultiIndex についてはすべて完了です。ぜひご活用ください。今日はパンダについて少し新しいことを学びました。

ではごきげんよう!


Power Automate の文字列関数: Substring と IndexOf

Power Automate の文字列関数: Substring と IndexOf

Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。

LuckyTemplates でビジュアル ツールチップを作成する

LuckyTemplates でビジュアル ツールチップを作成する

LuckyTemplates ツールチップを使用すると、より多くの情報を 1 つのレポート ページに圧縮できます。効果的な視覚化の手法を学ぶことができます。

Power Automate で HTTP 要求を行う

Power Automate で HTTP 要求を行う

Power Automate で HTTP 要求を作成し、データを受信する方法を学んでいます。

LuckyTemplates で日付テーブルを作成する方法

LuckyTemplates で日付テーブルを作成する方法

LuckyTemplates で簡単に日付テーブルを作成する方法について学びましょう。データの分析と視覚化のための効果的なツールとして活用できます。

2 つの方法による SharePoint 列の検証

2 つの方法による SharePoint 列の検証

SharePoint 列の検証の数式を使用して、ユーザーからの入力を制限および検証する方法を学びます。

SharePoint リストを Excel または CSV ファイルにエクスポート

SharePoint リストを Excel または CSV ファイルにエクスポート

SharePoint リストを Excel ファイルおよび CSV ファイルにエクスポートする方法を学び、さまざまな状況に最適なエクスポート方法を決定できるようにします。

Power Automate のオンプレミス データ ゲートウェイ

Power Automate のオンプレミス データ ゲートウェイ

ユーザーがコンピューターから離れているときに、オンプレミス データ ゲートウェイを使用して Power Automate がデスクトップ アプリケーションにアクセスできるようにする方法を説明します。

DAX 数式での LASTNONBLANK の使用

DAX 数式での LASTNONBLANK の使用

DAX 数式で LASTNONBLANK 関数を使用して、データ分析の深い洞察を得る方法を学びます。

CROSSJOIN 関数の使用方法 – LuckyTemplates および DAX チュートリアル

CROSSJOIN 関数の使用方法 – LuckyTemplates および DAX チュートリアル

LuckyTemplates で予算分析とレポートを実行しながら、CROSSJOIN 関数を使用して 2 つのデータ テーブルをバインドする方法を学びます。

TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する

TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する

このチュートリアルでは、LuckyTemplates TREATAS を使用して数式内に仮想リレーションシップを作成する方法を説明します。