はじめに
今回はpandasの表示設定の方法についてご紹介します。データフレームを表示させたときに、「小数点以下はこんなに表示しなくていいのに」「この列の幅が大きいから全部表示できない」なんてことはなかったですか?今回は表示関する設定を扱うことにしましょう。
サンプルデータ
今回は機械学習のライブラリであるsklearnにあらかじめ用意されている「腫瘍細胞に関するデータ」を使うことにしましょう。次のコードでデータを準備してください。
# ライブラリのインポート import pandas as pd from sklearn.datasets import load_breast_cancer # データを取り込む cancer = load_breast_cancer() data = pd.DataFrame(cancer.data,columns=cancer.feature_names) # データの確認 data.head()
このデータは30個の列項目がありますが、すべては表示されていません。(省略されていて横方向のスクロールバーが表示されていますね。)また、小数点以下は多いもので5桁まで表示されています。
表示設定
小数点以下の桁数の設定
まずは小数点以下の桁数を設定してみましょう。今回は最大で5桁の表示となっていますが、実はdefaultでは6桁となっています。この桁数は、次のようにpd.options.display.precisionで設定します。ここでは2桁に設定することにしましょう。
pd.options.display.precision=2 data.head()
最大表示数(行・列)
次は行・列に最大で表示する数の設定をします。これは、それぞれ「display.max_rows」「display.max_columns」で設定します。ここで設定した数を超える場合は、中間が省略されて先頭と末尾が表示されます。それぞれのdefault値は、
- display.max_rows:60
- display.max_columns:20
となっています。データフレームdataをそのまま表示してみましょう。
data
これは569行のデータでdefaultの60行を超えているので、中間が省略されていますね。では、display.max_columnsを570に設定してみましょう。
pd.options.display.max_rows=570 data
今度は最大行数を超えていないため、省略されずにすべて表示されています。よくみると右側にスクロールバーが表示されていますね。
次に列方向の設定をしてみましょう。列方向も途中で省略されていましたね。30列のデータだったので、default値の30を超えています。これを30にしてみましょう。
pd.options.display.max_columns=30 data.head()
今度は省略されずにすべての列が表示されています。横スクロールバーを動かして確かめてみてください。
各列の最大表示幅
今回のデータでは特に気になりませんでしたが、私の経験だとメールアドレスや住所情報などのデータを扱うときに、これらの列幅が異常に長くなってしまうケースがあり、他の列が省略されてしまうことがあります。そこで、各列の最大の幅を決めておいてこのようなことが起こらないようにしてみましょう。この設定をするのは、「display.max_colwidth」です。
たとえば、次のようなデータがあったとします。
住所の情報の詳細は重要ではないのに場所をとってしまっています。列の省略はされていませんが、全体的に詰まった印象で見にくいです。これにdisplay.max_colwidthを設定してみましょう。
たとえば次のように16に設定してみます。
pd.options.display.max_colwidth=16 sample_data
列の最大幅が16に設定されたので、これを超える列幅が必要な「どうぶつえん」や「住所」の列は改行や省略されて、列幅が16になっています。先ほどは「住所」の列が幅をとっていたのですが、すっきりしましたね。
まとめ
いかがでしたか?今回はデータ分析の話ではありませんが、データ分析しているときに気になる表示の設定について扱いました。
コメント