Pandasでデータフレームの表示を省略しない方法

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()メソッドを使用することで、表示幅や小数点以下の桁数など、様々な表示設定を変更することができます。また、一時的に表示設定を変更する方法もあります。大きなデータフレームを扱う場合や、特定の列や行だけを表示したい場合など、必要に応じて設定を調整しましょう。