Pythonでテーブル表示 tabulate 〜インストールと基本的な使い方〜

Python
スポンサーリンク

Pythonでデータを表示する際の困りごと

Pythonでデータを扱いだすと困ることとして、データの表示形式があります。

例えば、時間と気温をデータ化したとします(値は適当です)。

とりあえず辞書に格納し、表示させた例がこちらです。

今回は5つのデータだけなので、どれが何番目のデータか簡単に分かりますが、多くなってくると、どのデータが対応するのか分かりにくくなります。

もし表形式になってくれていれば、分かりやすいと思いませんか?

では表形式にするために、上記の実行結果をエクセルにコピペしてみます。

なかなか思ったようには表示してくれず、2行に別れていますが、列に関しては、1つのセルに入ってしまっています。

これでは、1つ1つ手作業でセルに入れていく必要が生じてしまいます。

だったら最初からエクセルを使えばいいわけで。

また見栄えだけの問題ではなく、データをさらに処理しようとした時、Excelで結果を確認したり、処理すると言うこともあるでしょう。

もちろんPythonで全てを終えるのが理想的ですが、Pythonの技術が未熟な時は難しい処理に関しては、慣れているExcelで処理した方が早かったりします。

そんな時、コピペしただけで、エクセルのセルにそれぞれ値が入ってくれた方が、後に処理するのが楽なわけです。

そんな時に知っておくと良い関数がtabulateです。

ちなみにtabulateは日本語で「表にする」だそうです。

そのまんまで、分かりやすいですね。

スポンサーリンク

tabulateをインストール

tabulateはPythonの基本パッケージには入っていないので、別途インストールする必要があります。

インストール方法は前に「Anacondaの使い方 その2」で紹介していますが、今一度紹介します。

Pythonプログラミング環境Anacondaへのパッケージのインストール方法
パッケージとは?Pythonは1991年に公開されたとのことですが、公開されて以来、色々な人が開発に関わり、たくさんのプログラムが組み合わされ、今のPythonを形作っています。しかし、それ以外にもプラスアルファで新たな機...

まずはAnaconda-navigatorを起動します。

左側の「Environment」をクリック。

矢印のプルダウンメニューを「Not installed」に変更。

もしくは右上の検索ボックスで「tabulate」を検索し、tabulateのチェックボックスにチェックを入れ、「Apply」をクリック。

するとインストールが開始されるので、しばし待ちます。

画面が更新されたら「Apply」をクリック。

これでインストール完了です。

スポンサーリンク

tabulateの使い方

まずはimportしますが、tabulate以外にもIPython.displayのHTMLとdisplayを使いますので、こちらもimportしておきます。

先ほどのデータを使い、一度出力してみます。

綺麗なテーブル表示にはなっていますが、思ったようにはできていません。

1行目にヘッダー(headers)、2行目に時間(dataset[“time”])、3行目に温度(dataset[“temp”])となってしまっています。

ヘッダーに従って、timeの列には時間を、tempの列には温度を表示してほしいわけです。

そこで使うのが、numpyという数値計算ライブラリです。

こちらはAnacondaを使っている人はすでにインストールされています。

そこでnumpyをimportしますが、これは慣例的にnpと打つだけで使えるようにしてimportします。

import X as Yとすると、XというライブラリをYという名前で使うことができます。

つまり今回の場合は、numpyとタイプしなければいけないところを省略形のnpとタイプするだけで、numpyとタイプしたのと同じことになるわけです。

今回はnumpyの中のtransposeという関数を用います。

transposeは行と列を入れ替える関数です。

ちょっとやってみましょう。

table1ではdataset[“time”]とdataset[“temp”]を格納したので、インデックス0に時間が、インデックス1に温度が格納され、2次元配列が生成されています。

table2では行と列を入れ替えたので、時間の1つ目と温度の1つ目がインデックス0に、時間の2つ目と温度の2つ目がインデックス1へと時間と温度の組み合わせの2次元配列へと変換されています。

ちなみにnp.array()にリストを入れることによって、通常のリストからnumpyのリストへと変換しています。

transposeのようなnumpyライブラリの関数を使う際には、このように変換する必要があるので注意してください。

そのうちにnumpyに関しても解説をしますが、とりあえず今回はnp.array()が必要だというくらいに留めておいてください。

それではこの変換したデータを用いて、テーブル表示してみましょう。

timeの列に時間が、tempの列に温度が表示されました。

ではこれをExcelにコピペしてみましょう。

ちゃんとそれぞれの値が別々のセルにコピペできました。

ここで先ほどのコマンドの解説をしてみます。

ちょっとややこしいので、それぞれ分解してみました。

長くて分かりにくいコマンドでも、1つずつ分解することで理解が進みますので、今後、こういったコマンドは1つずつどういう意味か考えてみることをお勧めします。

これで綺麗なテーブル表示ができ、Excelとの連携が簡単になりました。

コメント

タイトルとURLをコピーしました