「print」でDataFrameを表示したら、途中の部分が省略されてしまった…。
途中の部分も確認したいんだけど、省略せずに全て表示させる方法は無いの?
ありますよ!簡単にできます。
では今回は、
「pandasのDataFrameを省略せずに全て表示させる方法」
をできるだけわかりやすく解説いたします。
また、「省略せず表示させる場合の注意点」
も紹介いたしますので、ぜひ最後まで読んでいってください。
【著者情報】
Python歴3年。
入社2年目の春に先輩が突然トンズラし、業務を半分肩代わりするハメに…。
今までの1.5倍の仕事をこなせるはずもなく、苦しむ毎日。
業務効率化を模索中にPythonと出合う。
業務とPythonの相性が良く、2倍以上の効率化を実現。現在も効率化を進行中。
pandasのDataFrameを省略せずに全て表示させるには
「set_option」を使います。まずは実行見本をどうぞ。
実行見本
ひとまず下記3つをお見せします。解説は後ほど行います。
- 元データ
- 全コード
- 実行結果
元データ
説明のために、100行あるデータを用意しました。
(タイトルを除くと99行)
全部お見せすると長くなりますので、省略いたします。
※本題の主旨に反しますが、ご了承ください。
全コード
import pandas as pd
df = pd.read_excel('input.xlsx')
pd.set_option('display.max_rows', None)
print(df)
pd.set_option('display.max_rows', None)
実行結果
左側が通常の表示で、右側が今回のコードを実行した際の表示です。
※右側は10行目以降省略しております。ご了承ください。
事前準備
- pandasのインストール
「DataFrame」を作成・編集するには、「pandas」が必要になります。
pandasのインストール方法
pandasを初めて使用する場合は、下記コードを入力・実行して、インストールしてください。
pip install pandas
※pandasを使用したことがある場合は、このインストール作業は不要です。
インストールができない場合の対処法などは下記記事をご参考ください。
DataFrameの基礎解説
「read_excel」などは下記記事で解説しております。ご参考ください。
解説
※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。
pd.set_option('display.max_rows', None)
上記一文にて、DataFrameの中身を省略せずに全て表示させることができます。
「set_option」は設定を変えるときに使います。
何の設定を変えるのかというと、今回は()内の「display(表示)」です。
つまり「max_rows(最終行)まで表示するように設定を変える」ということになります。
<テンプレ>
【 pd.set_option(‘display.max_rows’, None) 】
DataFrameだけではなく、Seriesでも同様の結果が得られます。
DataFrameの最終行が1万行とかだったら怖いから、
50行以下だったら省略せずに表示することとかできないのかな?
できます!
最後の「None」を50に変えるだけです!
pd.set_option('display.max_rows', 50)
これで、DataFrameの最終行が50行以下だと省略せずに表示されます。
- DataFrameの最終行が50行以下の場合:省略せずに全て表示される
- DataFrameの最終行が51行以上の場合:省略して表示される
あくまでもDataFrameの最終行の行数に関する設定です。
どんな場合でも50行が表示されるわけではありませんのでご注意ください。
今回の元データは最終行が100行のため、上記コード(50指定)では省略して表示されます。
では99にしてみましょう(100行ある元データは、タイトルを除くと99行)
pd.set_option('display.max_rows', 99)
省略せずに表示されました。
元データの最終行が99行の場合
- 「99」以上の指定:省略せず全て表示される
- 「98」以下の指定:省略して表示される
見本のように「None」にすると、DataFrameの行数に関係なく全て表示されます。
注意点
便利に思える「set_option」ですが、これを使う際には1つ注意点があります。
前項でも解説いたしましたとおり、この「set_option」は「設定を変える」という解釈となります。
今回の例では、「省略せずに全て表示するように設定を変える」となります。
ということは、今回だけではなく以降の同一プログラム内では「全て表示する」という設定のままになっています。
以後、膨大になったDataFrameを「print」で表示してしまうと、全行が表示されてしまう場合があるわけです。
ご注意ください。
省略せずに全て表示させるようにした設定を、元に戻すこともできます。
省略する表示に戻す
省略する表示に戻したい場合は、「reset_option」を記述します。
import pandas as pd
df = pd.read_excel('input.xlsx')
pd.set_option('display.max_rows', None)
pd.reset_option('display.max_rows')
print(df)
6行目をご覧ください。
pd.reset_option('display.max_rows')
「reset(リセット)」つまり設定をリセットできるわけです。
()内には「’display.max_rows’」を記述します。
これで設定が元に戻りました。
うまく動作しない時
エラーが出る
No such file or directory: ○○
これは、読み込むファイルやフォルダが見つからないというエラーです。
読み込むファイルのファイル名と構文のファイル名が一致しているか確認しましょう。
詳しい解説は、下記記事をご参考ください。
○○ is not defined
今まで出てきていない変数などを処理しようとした時に出るエラーです。
変数名などが間違っていないかチェックしましょう。
詳しい解説は、下記記事をご参考ください。
その他のエラー
その他のエラーが出た場合は、エラー文をコピーしてNETで検索してみましょう。
最後に
pandasのDataFrameを省略せずに全て表示させる方法を解説いたしました。
省略せずに表示させるのは「set_option」、
元に戻すのは「reset_option」です。必要に応じてご活用ください。
当ブログでは、pandasやopenpyxlなど、Pythonに関する情報を配信しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
挫折せずにPythonを独学で学習する方法は特におすすめです。
最後までお読みいただき、ありがとうございました。がんばってください!