Pandas Dataframe

用語集のトップページへ

pandas ロゴ

データサイエンスに関していうと、 pandas DataFrame を使いこなすことで、ビジネスのあり方そのものを変革できるといっても過言ではありません。ただし、そのためには適切なデータ構造が必要です。これらを上手く活用することで、データの操作や分析を最大限効率的にできるようになります。

この目的のために使える最も便利なデータストラクチャの1つが pandas DataFrame です。

pandas とは、プログラミング言語 Python でデータ分析を行うためのオープンソースのライブラリでで、高速で適応性の高いデータ構造を提供します。この使いやすいデータ操作ツールは、ウェス・マッキニー氏が開発したものでNumPy パッケージ上に構築されています。その主要なデータ構造は DataFrame と呼ばれています。

今「 pandas DataFrame って何。全然理解できていないよ。」と思ったそこのあなた、ご安心ください。これから深く掘り下げて説明します。ここで知っておいていただきたいのは、 pandas DataFrame はデータに大きく依存する分野での使用に適したユーザーフレンドリーなツールであるということです。これには、科学計算、機械学習や前述のデータサイエンスが含まれます。

pandas の具体的な内容を下で説明します。pandas DataFrame の構築方法、 pandas DataFrame を使い始める方法、 pandas DataFrame を使うメリットなど、いくつかのトピックを取り上げます。

pandas の 2 つの主要なデータストラクチャ

  • pandas DataFrame(二次元)
  • pandas Series(一次元)
pandas の主要なデータ構造のタイプ

pandas は、 CSV や TSV ファイル、SQL (Structured Query Language) データベースなどのデータを読み込み、データフレームと呼ばれる行と列を持つ Python オブジェクトに変換します。このオブジェクトは、Excel やSPSS などの統計ソフトウェアのテーブルと類似しています。Pandas DataFrame は、 Excel の仕組みと同様に、さまざまな機能を提供します。オブザベーションの行と変数の列に表形式のデータを格納して操作したり、与えられたデータセットから必要な情報を抽出したりすることが可能です。

Apache Spark 3.2 の pandas API を実行することができます。これにより、 pandas のワークロードを均等に分散させ、すべての作業を確実に行うことができます。

さて、ここまで pandas が提供する2種類のデータストラクチャを説明してきましたが、ここで一歩下がって、 pandas DataFrame が実際にどのようなものかを見てみましょう。ここでは、簡単な定義と、 DataFrame が受け入れることのできる入力の種類の便利なリストを紹介します。

Pandas DataFrame とは

Pandas DataFrame とは、表形式のデータを表示、操作する方法の一つです。二次元のデータ構造で、データを行と列に整理してテーブルとして表示します。DataFrame は、ゼロから作成することも、NumPy 配列のような他のデータ構造を利用することも可能です。

pandas DataFrame を使用すると、様々な形式のデータを様々なソースから取り込むことができます。例えば、 pandas の内容をインポートできるのと同時に、 NumPy の配列をインポートすることができます。

DataFrame で入力が可能な主なデータタイプは、次のとおりです。
  • 一次元配列辞書、リスト、辞書、Series
  • NumPy 二次元配列
  • 構造化配列、レコード配列
  • A Series
  • その他の DataFrame

pandas DataFrame の取り扱いに関するよくある質問

pandas が提供するストラクチャや pandas DataFrame が何であるかを知っていることは、必ずしも pandas DataFrame の全てを知っているということではありません。そこで、このセクションでは pandas DataFrame をどのように扱うかについて、よくある質問に回答していきます。

あなたの質問が以下の6つの回答に該当しない場合、このまま読み進めてください。この他にもいくつかのトピックを取り上げ、この記事の途中で重要な質問にお答えします。

1. pandas DataFrame のインデックス、行、列を削除する方法

DataFrameの全ての列(または行やインデックス)が常に同じように必要なわけではありません。実際、 DataFrame オブジェクトを削除する必要がある場合もありますので、その方法を紹介します。

インデックスから順番に削除していく方法を紹介します。これらと記事中の以下のすべての例では、一般的な慣習として、コード内で "DataFrame" を "df" と略記することにします。

DataFrame は常に何らかのインデックスを持つため、インデックスを完全に削除することは困難ですが、インデックスラベルの変更やその名前を完全に削除することは可能です。名前の削除は、 del df.index.name コマンドを実行することで実施可能です。

また、DataFrame のインデックスをリセットすることも可能です。これは、インデックス値が重複している場合に役立ちます。必要なのは、インデックスをリセットし、重複を削除し、重複のない新しい列インデックスを復活させることです。

列の削除はもう少し簡単です。ドロップ( )方式で、列を取り出すことができます。この場合、削除したい列のラベルを入力する必要がありますので、ドロップ( )コマンドを実行する前に、正しい列名をメモしておいてください。また、引数 inplace を True にすると、 DataFrame を再割り当てせずに列を削除できるようになります。

最後に、 DataFrame の行を削除する方法を紹介します。

df.drop_duplicates( ) を実行すると、行ラベルに指定した条件に応じて重複している行が削除されます。列に対して動作するのと同じ .drop() メソッドを使用することもできますが、その場合は行のインデックスを指定してドロップします。この場合、必ずインデックスをリセットしてください。

具体的に欠損値を持つ行を削除するには、DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False) を使用できます。これは、Null 値を持つ行を自動的に取り出します。また、関数のパラメータを調整して、特定のデータセクションにおいて欠損値を削除するかどうかを決定することもできます。

Null 値を特定の値に置き換えたい場合は、.dropna() で削除するのではなく、 .fillna() コマンドを使用します。

2. pandas DataFrame のインデックスや列の名前を変更する方法

インデックスや列の名前の変更は、削除するよりも簡単でわかりやすいです。これらのオブジェクトの名前を変更するために必要なことは、 .rename( ) メソッドを使用し、新しい値を与えたいインデックス(または列)を記入することだけです。

リネームタスクで引数 inplace を False に変更すると、列の名前を変更しても DataFrame が再アサインされなくなります。

3. pandas DataFrame のデータをフォーマットする方法

ほとんどの場合、 DataFrame のユーザーは、 DataFrame 内の値を編集、変更、フォーマットする必要があります。そのために知っておくべき重要な戦略について見ていきます。

文字列のすべてのインスタンスを置換したい場合は、 .replace() コマンドを使い、(変更する値、変更先の値)のフォーマットで隙間を埋めることができます。

そして、変更したい文字列や値のすべてのインスタンスを、変更する項目に自動的に置換します。

もう一つ必要なのは、文字列から不要な部分を取り除くフォーマット機能です。map ()コマンドは、 result 列で使用すると、その列の各要素に選択したラムダ関数を適用します。

また、列のテキストを複数の行に分割することもできますが、これは少し複雑なので、簡単なチュートリアルを紹介します。

まず、長すぎる行を特定し、どの行を分割すべきかをわかるようにします。行を特定後、その列の中にある文字列をスペースで囲みます。次のステップは、行をまたいで分割される値を受け取り、 Series オブジェクトに入れることです。

もし、 Series に NaN 値があったとしても、問題ありません。Series を積み上げるだけで、最終的な Series のコピーには不要な NaN 値が含まれないことが保証されます。

積み上げた Series を希望のフォーマットにするためには、 DataFrame と並ぶようにレベルを落とす必要があります。その後、 Series を DataFrame に変換し、元の DataFrame に戻し、元の DataFrame から問題のある列を削除します。最後のステップ(列の削除)により、重複の発生を防ぐことができます。

DataFrame のデータに適用可能な最後のフォーマットは、 DataFrame の行または列に関数を適用する形です。

まず、 .loc[ ] または .iloc[ ] を用いて作業したい行を選択します。しかし、ここでは DataFrame を使用しているので、より具体的には df.loc と df.iloc を使うことになるでしょう。そして、正しい行を選択した後、 apply() を使い、行または列に doubler のような機能を適用することができます。

4. DataFrame の作成方法

空の DataFrame を作るには、 pandas DataFrame() 関数を使うことに尽きます。

NaN で DataFrame を初期化したい場合は、単純に float 型を持つ numpy.nan の使用を選択できます。これは、新しい DataFrame のデータ値が、デフォルトで float 型になることを意味します。dtype 属性を入力し、探している型を記入することで、このデフォルトの設定を回避することができます。

DataFrame( ) 関数は、 DataFrame に入れたいデータ、つまりインデックスと列を渡すことを前提にしています。このデータは、必要な数だけ種類を持つことができます。さらに、これまで説明してきたように、 dtype 属性を用いることで、いつでも強制的にそのデータ型を指定することができます。

空の DataFrame が使用する軸ラベルやインデックスを選択できます。もしこれを行わない場合、 pandas DataFrame が常識的なルールで自動的に構築してくれます。

5. pandas はデータをインポートする際に日付を認識するのか

原則的にはそうで、実際にはもう少し複雑です。

pandas は日付が入力されていることを認識できますが、正しい方向に少し誘導することでうまく機能します。具体的には、 CSV ファイルや類似ファイルなどからデータを取り込む際に、 parse_dates 引数を追加します。CSV ファイルからデータを取り込む場合、以下のようになります。

pd.read_csv('yourFile', parse_dates=True)

この方法は、数値書式を使用する日付に最も適しています。しかし、すべての日付がこのような形式を取るわけではありません。

変わった日付形式や、 DataFrame が認識しにくい日付形式の場合は、独自のパーサーを作成します。これらは、日付と時刻の入力認識を制御するためのフォーマット文字列を使用するラムダ関数の形式をとる場合があります。

pandas は、どのような方法でナッジを与えても、完了後に日時を認識できます。つまり、最小限の入力で、 DataFrame に日付ベースの情報を取り込むように指示することができます。

6. pandas DataFrame をいつ、なぜ、どのように再形成するべきか

データ分析は、 pandas DataFrame の最も重要な用途の一つです。そのため、 DataFrame の形状を変更できることが重要で、データ分析のニーズに合った理想的なストラクチャを形成できます。

では、「いつ DataFrame を再形成すればいいのか?」という問いに対する答えは、現在のフォーマットが、実施予定のデータ分析に有用でない場合やそのために新しい列や行を作成することを検討していない場合です。そして、なぜ再形成すべきかというと、データ分析に最適な形状を見つけるためです。

残す質問はあと1つ、「どのように再形成するの?」です。

ピボットとスタックを選ぶことができます。また、"unstacking and melting" メソッドも使用することができます。ここでは、これら3つのアプローチについて、それぞれどのように機能し、どのように DataFrame の形状を再形成するために使用することができるかを詳しく説明します。

Pivot メソッドで DataFrame を再形成する

まず、ピボットオプションから見ていきましょう。これは、元のテーブルから新しいテーブルを作成し、新しいコピーを思い通りの形にすることができます。この機能を使うには、3つの引数を受渡す必要があります。

まず、値です。この引数は、新しい DataFrame に取り込む元の DataFrame の値を選択するポイントなので、何を含み、何を省くかを選択できます。

次に、列を渡します。渡したものはすべて、最終的なテーブルの列になります。

最後に、新しいテーブルで使用するインデックスを選択する必要があります。

結果のテーブルにどのようなデータを組み込むかを、具体的にすることが大切です。例えば、エラーメッセージが表示されるため、指定した列に重複した値を含む行を含めることはできません。他の例では、最終的なテーブルに含める値を正確に選ばないと、複数の列でピボットを行うことになってしまいます。

次は、積み上げの検討に移ります。

Stacking メソッドで DataFrame を再形成する

DataFrameを積み上げることで、高さが出ます。その事実を認識できるかもしれません。3つ目の質問で、 DataFrame のデータをどのようにフォーマットするかのウォークスルーで、スタッキングに触れました。

技術的な説明としては、最内列のインデックスを移動して、代わりに最内行のインデックスに変更しているのです。これは、新しいインデックスと新しいレベルの行ラベルを持つ DataFrame を取得し、それは最も内側のレベルに位置することになります。

次に、いかにして unstack するかを考えます。ご想像のとおり、 stack の逆の処理で、stack が最内部の例インデックスを移動させるのに対し、 unstack は最内部の行インデックスを移動させます。つまり、unstack すると、最内部の行インデックスが移動し、代わりに最内部の列インデックスとして使用できるようになるのです。unstack は Melting とセットで使われます。次を見てみましょう。

Melting メソッドで DataFrame を再形成する

Melting は、データフレームが1つ以上の列を識別子変数として使用し、残りの列を測定変数として使用する場合に最適です。そのような場合、Melting は基本的に DataFrame の幅を広げるのではなく、長くすることができます。

Melting が、測定された変数が DataFrame の幅ではなく高さに配置されることを確認できるように、基本的に測定された変数を行軸に un-pivot することになります。最終的には、変数と値の2つの列を含むことになります。

Pandas DataFrame の使い方

DataFrame は Excel を使うのと同じように使うことができ、 pandas DataFrameも例外ではありません。

基本的には、 pandas DataFrame をデータストラクチャとして使用できます。また、表計算ソフトと同じように、データの加工や分析にも利用できます。

データを読み込んだり操作したりする必要があるとき、 pandas はその目的を達成するための便利なツールです。pandas の DataFrame にデータを入力する方法は既に説明しましたが、 pandas は様々な種類のデータに対応しているので、たくさんの種類のデータを取り込むことができます。これにより、どのような形式のデータであっても、情報を取り扱うことができるようになります。

そして、上で説明したフォーマット処理を用いることで、データを必要な形式に変換することができます。すでに持っているデータをより使いやすい形に変換し、ニーズに合った形で提供することができます。

pandas は Python と一緒に使うために設計されているので、この2つはほとんど常に一緒に使うことができます。つまり、 スケーリング SHAP 計算のようなタスクを PySpark と pandas を使って簡単に実行できるのです。

pandas DataFrame の中で特定のタスクや関数を実行する方法について、より具体的に説明します。pandas DataFrame の作成、インデックスの作成、反復処理などを説明した後、そもそも pandas を使うことの利点について詳しく説明します。

pandas DataFrame の作成方法

pandas DataFrame は様々な使い方ができる万能ツールなので、いくつかの異なる戦略を用いて作成することも可能です。

空の pandas DataFrame を設定する方法は、質問4への回答ですでに説明しました。これは、 pandas DataFrame を新規に作成する際に使用できるメソッドの1つです。この方法は、 pandas に「再配置」する別のデータストラクチャをまだ持っていない場合、言い換えれば、完全に白紙の状態から始めたい場合に最適です。

NumPy の ndarray から pandas DataFrame を作成する方法について見ていきます。

要するに、 NumPy 配列から非常に簡単に DataFrame を作ることができます。必要なことは、選択した配列を pandas のデータ引数で DataFrame ( ) 関数に渡すだけです。 DataFrame は NumPy のデータを使って、新しい DataFrame を形作ります。引数はこのようなものになります。

print(pd.dataframe [ ] )

そして、入力するデータは、角括弧の中に入ります。

値、インデックス、カラム名はすでに NumPy 配列に含まれているはずで、 pandas はあなたの特定の情報を使ってあなたに合った DataFrame を作ることができます。

pandas DataFrame を使う利点の1つは、 DataFrame ()関数が多くの異なるストラクチャを入力として受け取ることができることです。NumPy 以外のストラクチャを用いてストラクチャを作成する場合も、ほとんど同じように処理します。つまり、DataFrame ()関数に配列を渡し、その情報を使って新しい DataFrame を作成するように pandas に指示することになります。

新しい DataFrame を作成するために、 DataFrame を入力として使用することもできます。そのためには、 my_df = pd.DataFrame ( ) を使い、入力データを数式に挿入することになります。

元の辞書のキーは、 Series のインデックスに含まれ、 DataFrame にも含まれます。インポートが完了すると、キーは自動的にソートされます。

shape プロパティは、 .index と一緒に使用できます。プロパティを使用して、新しく作成した DataFrame のディメンションを知ることができます。これにより、幅と高さの両方が表示されます。高さだけを知りたい場合は、 LEN ()関数(これも .index プロパティと一緒に)を使用すると、DataFrame の高さが表示されるようになります。

これらの方法は、 DataFrame のディメンションに NaN 値をすべて含めて表示するものです。一方、 df[0].count() を使用すると、NaN 値なしで DataFrame の高さが表示されます。

pandas DataFrames のインデックス

データのインデックス化は、コレクションの中の物理的なアイテムのインデックス化と同じように考えることができます。つまり、 pandas におけるインデックス化は、データをソートし、特定の値、行、列を選んで整理することを意味します。

pandas DataFrame で可能なインデックス化は、 Excel でできるようなインデックス化と似ています。最大の違いは、 pandas のインデックス化がより詳細で多機能であるため、データを思い通りに扱うための幅広いオプションにアクセスできることです。

pandas では、 DataFrame のデータの特定の行や列を選択することでインデックスを作成することができます。正確な選択には、さまざまな形があります。数行だけ使って全列を使いたい場合もあれば、その逆の場合もあります。また、特定の行や列が必要な場合もあるでしょう。

データの特定の部分集合を選択することから、インデックス化は部分集合選択と呼ばれることもあります。

pandas DataFrame でインデックスがどのように機能するかについて説明します。

pandas でインデックスを作成するには、実際には4つの別々の方法を使うことができますので、それぞれの概要について簡単に説明します。まず、 df[ ] ですが、これはインデックス演算子関数です。また、ラベルを扱う場合は、 df.loc[ ] を使うこともできます。df.iloc[] は、主に位置や整数を中心としたデータで使用します。最後に、ラベルベースと整数ベースの両方のデータに対応する関数、 df.ix[ ] があります。

先ほど紹介した4つのインデックス作成スタイルは、インデクサと呼ばれ、データのインデックスを作成する最も一般的な手法の一つです。

pandas DataFrame をイテレートする

pandas DataFrame で同じ文節群を繰り返し実行したいとき、つまり行を反復処理したいときのために準備することは良いことです。

これも pandas ではかなり簡単に実行できる機能です。for ループと iterrows ()コマンドを併用して、反復処理を設定することになります。これにより、 DataFrame の行を( index, Series )のペアという形でループに入れることができます。

そうすれば、結果に( index, row )のタプルを取得することができます。

pandas で反復処理を行う場合、辞書のように DataFrame に反復処理を指示することになります。つまり、オブジェクトのキーに対して、行と列で次々に項目を取りながら反復しています。

Pandas DataFrame を使用するメリット

  • 異なるデータベース、データフォーマットからのデータの読み込みが容易になります。
    • さまざまな種類のデータで使用可能です。
  • 共通キーを使用して、データセットを直観的に統合し、完全なビューを取得できます。  
  • データフレーム内のレコードをセグメント化できます。
  • 大規模データセットのスマートラベルベースのスライシングやクリエイティブなインデックスの作成、サブセット化ができます。
  • Pandas DataFrame 内の組み込み関数にアクセスすることで、データから正確な統計を生成するための迅速な集計や要約ができます。
  • 特定の計算タスクを特徴とする独自の Python 関数を定義し、データフレームのレコードに適用できます。
  • より少ない文章でより多くの仕事をこなすための構文があります。
    • C++ や Java で15行程度かかる作業を2行以内で実現可能です。
    • ワークフローを合理化し、毎日より多くの仕事をこなし、実際に処理・分析できるデータ量を増やすことができます。
  • pandas は Python で使用するために設計されているため、 Python と完全に互換性のある様々な機能へのアクセスができます。
    • 多くの業界関係者が Python に精通しているため、Python と Pandas の組み合わせにより、さらにアクセスしやすくなります。
  • 大量のデータを簡単かつ効率的に処理し、また、すでに述べた構文により処理スピードも向上します。
  • データを簡単に編集でき、必要な機能を適用できる柔軟なデータハンドリングにより、データアプローチのカスタマイズが可能です。
  • オープンソースのため、必要な人は誰でも利用できます。
  • 設計された言語だけでなく、さまざまな種類のプログラミング言語と互換性があります。例えば、 Java や HTML で動作します。
  • json など他のフォーマットにも簡単に変換できます。

pandas DataFrame 可視化ツールトップ5

pandas DataFrame は、ユーザに様々な特徴や機能を提供し、 pandas ライブラリに入力されたあらゆるデータを柔軟に操作する機会を提供しており、高度な視覚的なツールとして設計されているわけではありません。基本的に、よりバックステージビューを見ることができます。

それは、様々な意味でとても便利です。例えば、入力するデータを視覚的に表現することが必要な場合があります。

例えば、 pandas と Excel のような類似のツールとの比較を考えてみましょう。Excel では、いくつかのボタンをクリックするだけで、純粋な数値データを視覚的に魅力的なグラフやチャートなどの表現に自動的に変換することができます。一方で、 pandas にはこのような機能はありません。

そのため、データの可視化ツールは pandas DataFrame 以外にも目を向けたいところです。

DataFrame の可視化ツールのベスト5を以下にまとめました。上位2つは JavaScript のツールで、残りの3つは Java とは無縁のデータ分析アプリケーションです。各ツールの詳細について、なぜそれが便利なのか、なぜこのようなランキングになったのかを紹介します。

そこで、まず上位2つのツールについて、なぜ JavaScript のツールがその座を占めるのかを見てみましょう。

JavaScript ツール

もともと LiveScript と呼ばれていた JavaScript は、その柔軟で動的な性質により、現在最も人気のあるプログラミング言語の 1 つです。その構文は、同じく広く使われているプログラミング言語であるC言語と似ています。

JavaScript を使用すると、インタラクティブな Web サイトを作成することができます。また、既存の Web サイトを調整することもできます。pandas DataFrame と同様に、 JavaScript はデータを操作することができるので、計算の実行やデータに基づく結論の検証に使用することができます。また、 HTML や CSS 文書に動的なテキストを挿入したい場合にも便利です。

今回は、 pandas DataFrame の可視化に使える JavaScript のツールを紹介します。

JavaScript のツールがベスト可視化ツールの上位2位を占めることができるのは、 JavaScript という言語が常に進化しているからです。広く使えるだけでなく、使えば使うほど常に進化していくからこそ、広く使われているのです。そのため、この言語を使って作られたツールは、より柔軟に、ユーザーのニーズに合わせてアップデートすることができます。

それでは、 pandas DataFrame の可視化に最適な JavaScript ツールである Qgrid と、それに次ぐ PivotTable.js について見ていきましょう。

1. Qグリッド

Quantopian によって開発された Qgrid は、 SlickGrid コンポーネントを使い DataFrame に特別なインタラクティブ性を与え、 pandas DataFrame のデータをディスプレイ版でソートやフィルタリングすることができるようにします。Qgrid は、 Jupyter ノートブック用のウィジェットです。

Qgrid を使うと、データを型によってフィルタリングすることができます。つまり、 Qgrid を使えば、使いやすいフィルタリングシステムを利用できます。

Qgrid のデータの可視化で特に便利なのが、レンダリング機能を設定できる機能です。設定が完了したら、あとは選んだデータを DataFrame で読み込むだけです。このため、 Qgrid はデータ操作やデータの精査が必要な場合に特に適しています。

Qgrid の仕組みについて概要を簡単に見てみましょう。

これを使うには、 QGridLayout の親レイアウトを使うか、 parentWidget() を使い特定のスペースを割り当てます。そして、このツールは、このスペースを行と列に分割し、割り当てられたそれぞれのウィジェットを適切なセルに配置します。

2. PivotTable.js

PivotTable.js は、ピボットテーブルライブラリを使用した JavaScript モジュールで、 pandas で使用するトップツールの第 2 位にランクインしています。PivotTable.js は、データの要約やピボットを行うことができ、より簡単でかつアクセスしやすくデータを取り扱うことができます。

PivotTable.js の大きなメリットは、とても簡単に使用できることです。クリックとドラッグするだけで、その機能をフルに活用することができます。

これらの機能には、 pandas DataFrame 内のデータの統計的分析とともに、簡単な可視化も含まれます。pandas DataFrame 内のデータを一目で分かりやすく理解できるように、データのピボットやサマライズを行うための優れたツールです。また、テーブルを作成した後、その中に含まれるデータにフィルタをかけることができるので、同じウィジェットでさらに実用性が高まります。

PivotTable.js は、ピボットチャートやテーブルを pandas DataFrame にドラッグやドロップする際にも便利です。Jupyter や IPython Notebook からテーブルを転送する際に利用でき、 pandas ライブラリに入力するデータに関してより柔軟性を持たせることができます。

データ分析アプリケーション

pandas DataFramsは、これまで述べてきたように、データを分析したい人にとって非常に便利なものです。

データの取り扱いは複雑です。データが生成されたとしても、それを適切なツールに接続したり正しい計算式を適用したりしない限り、自動的に整理されることはありません。データ分析アプリケーションの価値は、この点にあります。たとえよく整理されたデータであっても、プログラムで分析することができれば、より速く分析できます。

このセクションでは、 pandas DataFrame に格納された情報を可視化するのに最適な3つのデータ分析アプリケーションについて考えていきます。

3. pandasGUI

pandasGUI は、データ操作や要約統計を支援するために作成された Python ベースのライブラリです。これらは、 GUI (グラフィカル・ユーザー・インターフェース)を使い DataFrame ライブラリのデータに適用され、インターフェース上で意図した操作を行うことになります。pandasGUI は、 UI (ユーザーインターフェース)でコマンドを入力すると、プログラムがそのコマンドを pandas 本体で実行するように設計されています。

pandasGUI をインストールしようとしている人は、この特定の目的のために新しい別の仮想環境を設定することが望ましいです。そして、この環境に pandasGUI ライブラリをインストールすることができます。そうすれば、よりきれいにインストールでき、より早くツールを使用できるようになります。

インストールとセットアップの完了後、すぐに使い始めることができます。DataFrame を関数に渡すと、データセットから描画した行と列が自動的に pandasGUI へ入力されます。一度に複数のデータを読み込むことも可能で、一度に多くの情報を簡単に把握することができます。

データが正常に関数に渡されると、 GUI からデータにアクセスできるようになります。そこから、さまざまな方法でデータを操作、編集し、分析することができます。使用可能な関数やレイアウトの外観は、多かれ少なかれ Excel のスプレッドシートのように機能します。

GUI 形式のデータは、他の形式にもコピーやペーストが可能です。このため、グラフやチャートのような視覚化ツールへのデータ転送が特に簡単に行えます。

基本的に、 pandasGUI はシンプルに使うことができます。また、経験の浅いコーダーにとっても、非常に使いやすいものとなっています。そのため、 pandas DataFrame のデータ可視化ツールとしては3番目に便利なものとされています。

4. Tabloo

Tabloo は自らを「表形式データを視覚化するためのミニマルなダッシュボードアプリ」と表現しています。Python から実行できるので、 pandas とも完全な互換性があります。

このデータ可視化ツールは Flask のバックエンドを使用していますが、他の種類のバックエンド言語にも対応しています。バックエンドは、 pandas DataBase に入れたデータを視覚的に理解するためのシンプルなインターフェイスを提供するために使われます。

Tabloo では、データのプロットも可能です。つまり、外部ソフトウェアに頼らなくても、必要なグラフやチャートを見始めることができるのです。何かを手早く視覚化したいとき、それを可能にするツールをさらに探し回る必要がないのは便利です。

使い方の点で考えると、 Tabloo は pandasGUI と共通する部分が多いです。また、データをセルに整理し、 pandasGUI が実行できるものとほぼ同じ関数で操作することができます。しかし、 Tabloo で一度に複数のフィルタを適用することは少し難しく、これは pandasGUI が非常に得意とするところです。

Tabloo が操作する構文は、 pandasGUI と同様にクエリ構文です。

pandasGUI と Tabloo の重要な違いは、前者の方がより機能が豊富であることです。pandasGUI を使用することで、より多くのデータ操作の選択肢が得られるため、 Tabloo は紛れもなく便利な機能を提供していますが、このリストでは下位にランク付けされています。

5. D-Tale

Tabloo に匹敵するアーキテクチャを持つ D-Tale は、このリストの最後を飾っています。D-Tale は、 Tabloo と同様に Flask のバックエンドと、React のフロントエンドを使用しており、 D-Tale で使用できる豊富なオプションを最大限に活用することができます。

D-Tale を使用する際に表示されるユーザーインターフェースは、アプリケーションの名前が示すように、かなり細かいところまで作り込まれています。pandas のデータを D-Tale にインポートすることでアクセスできます。データセットが自動的に行と列に整理され、また多くのソート機能が付いているので、思い通りのデータセットに仕上げることができます。例えば、ロック、非表示、削除、名前の変更などの機能を、任意の行や列に対して使用することができます。

また、 D-Tale では、チャートからヒストグラムまで、データを視覚的に表現することができます。

D-Tale の便利な機能は、アプリケーションからいつでもコードをエクスポートできることです。そのコードを他のアプリケーションに貼り付けて、有効性を確認したり、他の方法でデータを処理したりすることが簡単にできます。

また、 D-Tale では、データのフォーマットをすることもできます。例えば、データセットに日付が含まれているとします。日付の月と日をピリオドではなくバックスラッシュで区切りたい場合は、 D-Tale で調整することができます。

pandas DataFrames の概要

データを処理、操作、分析する場合、 pandas DataFrame はあなたの味方です。

Python と組み合わせて使うことを想定したライブラリなので、 Python を少しでも知っている人であれば、誰でも利用することができます。また、さまざまな形式のデータを処理できるため、どのようなデータであっても簡単に入力することができます。

pandas を使うことで得られる最大のメリットをこの記事で紹介してきましたが、改めて簡単にまとめます。pandas DataFrameは、データを素早く簡単に集約することができます。また、複数の可視化ツールに対応し、最大限の柔軟性を実現しています。他のスクリプト言語と異なり、数行のコードコマンドで多くのことができるため、常時使用できます。

一言でいえば、 pandas DataFrame は便利であり、それはデータを加工しようとする人にとっても同じです。

関連リソース


用語集のトップページへ