マルチレベルまたは階層データ用の 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 についてはすべて完了です。ぜひご活用ください。今日はパンダについて少し新しいことを学びました。

ではごきげんよう!


Python における Self とは: 実際の例

Python における Self とは: 実際の例

Python における Self とは: 実際の例

RでRDSファイルを保存してロードする方法

RでRDSファイルを保存してロードする方法

R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。

最初の N 営業日の再考 – DAX コーディング言語ソリューション

最初の N 営業日の再考 – DAX コーディング言語ソリューション

この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。

LuckyTemplates のフィルター コンテキストの概要

LuckyTemplates のフィルター コンテキストの概要

この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。

LuckyTemplates を使用したビジネス レポート

LuckyTemplates を使用したビジネス レポート

これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて