PandasのDataFrameの表示を省略したくない場合について

Python,イメージ

AI実装検定のご案内

Pandasでは、デフォルト設定により、DataFrameの行数や列数が多すぎる場合に途中が「…」で省略されて表示されます。

これは出力の見やすさやパフォーマンスを意識した仕様ですが、「すべてのデータを省略せずに表示したい」場合は、表示設定(オプション)を変更することで対応できます。

目次

基本的な対応方法:pd.set_optionで表示設定を変更する

Pandasの表示設定は、pandas.set_option() を使って変更できます。

よく使うのは以下の3つです。

import pandas as pd

# 行数をすべて表示(Noneは無制限を意味する)
pd.set_option('display.max_rows', None)

# 列数をすべて表示
pd.set_option('display.max_columns', None)

# 各列の幅を最大に(必要に応じて)
pd.set_option('display.max_colwidth', None)

# 出力幅を大きく(特に横長DataFrameに有効)
pd.set_option('display.width', 0)  # 自動調整

実行例

import pandas as pd

# サンプルデータ:100行×10列のDataFrame
df = pd.DataFrame([[f'R{r}C{c}' for c in range(10)] for r in range(100)])

# 表示設定を変更
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)

print(df)

この設定をすれば、省略されずにすべて表示されます。

一時的に設定を変更したい場合:option_contextの活用

全体に影響を与えず、一部のコードブロック内だけで設定を一時的に適用したいなら、option_contextが便利です。

with pd.option_context('display.max_rows', None, 'display.max_columns', None):
    print(df)

このブロックの外では元の設定に戻るため、Notebookや他のコードと干渉せず安全です。

注意点:データ量が非常に多い場合のパフォーマンス

  • 数千行以上のDataFrameをすべて表示すると、ターミナルやJupyter Notebookが重くなることがあります。
  • 大規模データでは .to_csv().to_string() で外部出力した方が現実的な場合もあります。

その他の表示設定オプション

オプション名意味
'display.max_rows'表示する最大行数(Noneで全行表示)
'display.max_columns'表示する最大列数(Noneで全列表示)
'display.width'出力幅(デフォルトは80や100)
'display.max_colwidth'列の文字列の最大幅(Noneで制限なし)
'display.precision'小数点の表示桁数

一覧表示したい場合は以下のように確認できます。

pd.describe_option()  # 全オプション
pd.describe_option('display')  # display関連のみ

応用:Jupyter Notebook での表示が途切れるとき

Notebookでは、display(df) を使っても省略される場合があります。

そのときは以下のように表示を工夫するとよいです。

from IPython.display import display
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
display(df)

または、以下のようにテキストとして表示

print(df.to_string())

まとめ:省略せず表示したい場合の手順

やること方法
行数を省略したくないpd.set_option('display.max_rows', None)
列数を省略したくないpd.set_option('display.max_columns', None)
一時的に設定したいwith pd.option_context(...)
表示が重すぎるときは.head(), .tail() で部分表示 or .to_csv()

以上、PandasのDataFrameの表示を省略したくない場合についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次