pandasでデータフレームの表示を省略しない方法
はじめに
データ分析を行う上で、Pandasは必須のツールの一つです。しかし、Pandasで大きなデータフレームを扱う場合、デフォルトでは表示が省略されてしまい、全ての行や列が表示されないことがあります。この問題を解決するために、今回はPandasでデータフレームの表示を省略しない方法を紹介します。
Pandasでデータフレーム表示時の省略問題
Pandasで大きなデータフレームを扱う場合、デフォルトでは表示が省略されてしまい、全ての行や列が表示されないことがあります。以下のように、10行以上のデータフレームを表示した場合、省略されてしまいます。
import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(15, 10)) print(df)
0 1 2 ... 7 8 9 0 -1.267012 -0.796497 -1.690631 ... 1.107845 0.977029 0.035172 1 0.710494 0.413307 -1.711394 ... -0.842012 0.434205 1.149024 2 0.714763 -1.265584 0.956211 ... 0.355683 -0.221531 0.593354 3 0.959333 0.272895 2.264425 ... 0.482441 1.622501 1.903953 4 -1.064200 -1.483274 1.061714 ... -1.941703 -0.940194 -1.821977 5 1.209148 1.363448 -1.343678 ... -0.723122 0.748333 -0.583592 6 -1.151321 0.562759 -0.122740 ... -1.319150 0.004311 -1.031305 7 0.740957 -0.519590 -0.688099 ... -0.951419 -1.722294 0.319423 8 -1.596311 0.263778 0.029173 ... 1.304547 0.678665 -0.038576 9 -0.792292 0.200570 -2.218419 ... 0.416189 0.438549 -0.068333 10 -0.436593 0.630634 0.621308 ... -1.214896 0.474668 1.995697 11 0.004193 0.071935 -0.942417 ... -0.503456 -0.388059 1.032211 12 0.492868 0.035043 -0.628740 ... 1.200872 -1.019448 -1.119275 13 0.477500 -1.211536 0.563861 ... 0.076332 -0.047405 -2.071643 14 -0.179444 0.763874 0.195595 ... -0.871061 0.238855 -0.224712 [15 rows x 10 columns]
省略されない表示方法の紹介
ここからは、Pandasでデータフレームの表示を省略しない方法を紹介します。
こんな人におすすめ
- データ分析を行う上で、大量のデータを扱うことがある人
- データフレームの全ての行や列を確認したい人
使用する主なライブラリ
- pandas
Pandasで省略しない表示方法
set_option()メソッドの使い方
Pandasでは、set_option()メソッドを使用して、表示の設定を変更することができます。
行・列の表示数を設定する方法
まずは、行や列の表示数を設定する方法を紹介します。以下の例では、表示する最大行数を10に設定しています。
import pandas as pd import numpy as np pd.set_option('display.max_rows', 10) df = pd.DataFrame(np.random.randn(15, 10)) print(df)
0 1 2 ... 7 8 9 0 0.496345 -0.190823 -0.256261 ... -1.625819 -0.942479 -1.485606 1 0.272001 -0.649974 1.052769 ... -1.900647 -0.002479 -1.134652 2 -0.058972 0.604247 -1.924853 ... -1.118035 0.385091 0.735394 3 1.477962 -0.694737 -0.227780 ... -0.421583 0.589356 -2.139389 4 -0.455098 -0.113385 0.510748 ... 0.378258 -0.756181 1.886979 .. ... ... ... ... ... ... ... 10 -1.331996 -2.946306 -0.150798 ... 0.255480 0.876048 0.540853 11 -0.090781 -0.700037 -1.188638 ... 0.970101 0.562543 -2.162170 12 0.487638 -0.386764 -0.591639 ... -1.776521 -1.215198 -2.496295 13 -0.048224 -1.670032 -0.004862 ... 0.793263 1.148906 -0.512969 14 1.062998 -0.237221 -0.707022 ... 0.334048 2.177780 0.994524 [15 rows x 10 columns]
表示幅や小数点以下の桁数を設定する方法
次に、表示幅や小数点以下の桁数を設定する方法を紹介します。以下の例では、表示する最大列数を5に、小数点以下の桁数を2に設定しています。
import pandas as pd import numpy as np pd.set_option('display.max_columns', 5) pd.set_option('display.precision', 2) df = pd.DataFrame(np.random.randn(10, 10)) print(df)
0 1 2 3 4 ... 0 0.21 0.48 0.23 -0.63 1.02 ... 1 0.51 1.01 -0.25 -0.68 -0.46 ... 2 -0.14 -0.27 -0.21 0.11 -1.24 ... 3 -1.05 0.53 -0.11 0.39 0.40 ... 4 -0.08 1.18 -0.36 0.85 0.39 ... 5 -0.49 0.28 1.67 -0.49 -1.06 ... 6 -0.35 -0.57 0.41 0.27 -0.04 ... 7 1.22 0.23 -0.68 -1.28 -0.11 ... 8 -0.01 -0.19 -0.61 0.06 0.62 ... 9 1.63 0.70 -0.98 0.41 -1.27 ... [10 rows x 10 columns]
一時的に表示設定を変更する方法
以上の方法では、設定が全てのデータフレームに影響を与えますが、一時的に表示設定を変更する方法もあります。以下の例では、with構文を使用して、一時的に表示する最大列数を5に変更しています。
import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(10, 10)) with pd.option_context('display.max_columns', 5): print(df)
0 1 ... 8 9 0 0.126895 1.985370 ... -1.627581 -0.359887 1 0.252894 0.371389 ... -0.922959 2.102706 2 2.012290 0.366708 ... 2.159572 -0.016378 3 -1.219756 0.247080 ... 2.271770 -1.816184 4 0.414877 1.618480 ... -2.320191 -1.378031 5 -1.120840 1.288468 ... -1.251140 0.229206 6 -0.940208 0.098389 ... 0.043099 -0.289511 7 -2.078458 -0.368058 ... 1.113833 0.891977 8 -0.477442 0.516852 ... -0.932828 0.845574 9 -0.631330 -0.911195 ... -1.618290 0.925751 [10 rows x 10 columns]
Pandasの活用例
ここまでで、Pandasでデータフレームの表示を省略しない方法を紹介しました。ここからは、Pandasの活用例を紹介します。
大きなデータフレームの表示
まずは、大きなデータフレームの表示方法を紹介します。以下の例では、”diamonds”データセットを使用しています。
import pandas as pd diamonds = pd.read_csv("https://raw.githubusercontent.com/tidyverse/ggplot2/master/data-raw/diamonds.csv") pd.set_option('display.max_rows', 1000) print(diamonds)
carat cut color clarity depth table price x y z 0 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 2.43 1 0.21 Premium E SI1 59.8 61.0 326 3.89 3.84 2.31 2 0.23 Good E VS1 56.9 65.0 327 4.05 4.07 2.31 3 0.29 Premium I VS2 62.4 58.0 334 4.20 4.23 2.63 4 0.31 Good J SI2 63.3 58.0 335 4.34 4.35 2.75 ... ... ... ... ... ... ... ... ... ... ... 53935 0.72 Ideal D SI1 60.8 57.0 2757 5.75 5.76 3.50 53936 0.72 Good D SI1 63.1 55.0 2757 5.69 5.75 3.61 53937 0.70 Very Good D SI1 62.8 60.0 2757 5.66 5.68 3.56 53938 0.86 Premium H SI2 61.0 58.0 2757 6.15 6.12 3.74 53939 0.75 Ideal D SI2 62.2 55.0 2757 5.83 5.87 3.64 [53940 rows x 10 columns]
特定の列・行だけ表示設定を変更する場合
特定の列や行だけ表示設定を変更する場合もあります。以下の例では、”diamonds”データセットから”price”列と”carat”列を取得し、表示幅を10に設定しています。
import pandas as pd diamonds = pd.read_csv("https://raw.githubusercontent.com/tidyverse/ggplot2/master/data-raw/diamonds.csv") pd.set_option('display.max_columns', None) pd.set_option('display.width', 10) print(diamonds[["price", "carat"]])
price carat 0 326 0.23 1 326 0.21 2 327 0.23 3 334 0.29 4 335 0.31 ... ... ... ... 53935 2757 0.72 53936 2757 0.72 53937 2757 0.70 53938 2757 0.86 53939 2757 0.75 [53940 rows x 2 columns]
様々なデータ型の表示設定を調整する場合
最後に、様々なデータ型の表示設定を調整する場合を紹介します。以下の例では、”titanic”データセットを使用しています。
import pandas as pd titanic = pd.read_csv("https://web.stanford.edu/class/archive/cs/cs109/cs109.1166/stuff/titanic.csv") pd.set_option('display.max_rows', 1000) # object型を表示する場合は、最大表示幅を100にする pd.set_option('display.max_colwidth', 100) # float型を表示する場合は、小数点以下2桁まで表示する pd.set_option('display.precision', 2) print(titanic)
まとめ
Pandasでデータフレームの表示を省略しない方法について紹介しました。set_option()メソッドを使用することで、表示幅や小数点以下の桁数など、様々な表示設定を変更することができます。また、一時的に表示設定を変更する方法もあります。大きなデータフレームを扱う場合や、特定の列や行だけを表示したい場合など、必要に応じて設定を調整しましょう。