Pandas のデータフレームを確認する

このページでは、Pandas のデータフレームの中身を確認する方法を紹介します。

先頭 N 行を表示する

head([表示する行数]) メソッドでデータフレームの先頭 N 行を切り出すことができます。

>>> import pandas as pd
>>> import numpy as np

# データフレーム df を作成・表示
>>> df = pd.DataFrame(np.random.randn(6,4), columns=list('ABCD'))
>>> df
          A         B         C         D
0 -1.302844  0.451828  0.620522  0.293057
1 -1.253633 -0.235736 -0.603797  1.420517
2  0.913725 -0.345994  0.316969  0.292689
3 -1.452261 -0.313369  2.530778 -0.236372
4 -0.749982 -0.799720 -0.926150  0.037424
5  1.118875 -0.215985 -0.786076  0.806723


>>> # 先頭 3 行を抽出
>>> df.head(3)
          A         B         C         D
0 -1.302844  0.451828  0.620522  0.293057
1 -1.253633 -0.235736 -0.603797  1.420517
2  0.913725 -0.345994  0.316969  0.292689
>>>

>>> # 行数を省略した場合は、先頭 5 行が抽出されます。
>>> df.head()
          A         B         C         D
0 -1.302844  0.451828  0.620522  0.293057
1 -1.253633 -0.235736 -0.603797  1.420517
2  0.913725 -0.345994  0.316969  0.292689
3 -1.452261 -0.313369  2.530778 -0.236372
4 -0.749982 -0.799720 -0.926150  0.037424

末尾 N 行を表示する

tail([表示する行数]) メソッドでデータフレームの末尾 N 行を切り出すことができます。

>>> # 末尾 2 行を抽出
>>> df.tail(2)
          A         B         C         D
4 -0.749982 -0.799720 -0.926150  0.037424
5  1.118875 -0.215985 -0.786076  0.806723


>>> # 行数を省略した場合は、末尾 5 行が抽出されます。
>>> df.tail()
          A         B         C         D
1 -1.253633 -0.235736 -0.603797  1.420517
2  0.913725 -0.345994  0.316969  0.292689
3 -1.452261 -0.313369  2.530778 -0.236372
4 -0.749982 -0.799720 -0.926150  0.037424
5  1.118875 -0.215985 -0.786076  0.806723

基本統計量を算出する

describe() メソッドをで、件数 (count)、平均値 (mean)、標準偏差 (std)、最小値(min)、第一四分位数 (25%)、中央値 (50%)、第三四分位数 (75%)、最大値 (max) を確認することができます。

>>> df.describe()
              A         B         C         D
count  6.000000  6.000000  6.000000  6.000000
mean  -0.454353 -0.243163  0.192041  0.435673
std    1.165220  0.402260  1.304555  0.593064
min   -1.452261 -0.799720 -0.926150 -0.236372
25%   -1.290541 -0.337838 -0.740506  0.101240
50%   -1.001808 -0.274553 -0.143414  0.292873
75%    0.497798 -0.220923  0.544634  0.678307
max    1.118875  0.451828  2.530778  1.420517

各列の型を確認する

作成したデータフレームの dtypes アトリビュートにアクセスすることで、各列の型 (dtype) を確認することができます。

# データフレーム df2 を作成
>>> df2 = pd.DataFrame({ 'A' : 1.,
                         'B' : pd.Timestamp('20130102'),
                         'C' : pd.Series(1,index=list(range(4)),dtype='float32'),
                         'D' : np.array([3] * 4,dtype='int32'),
                         'E' : pd.Categorical(["test","train","test","train"]),
                         'F' : 'foo' })
# データフレーム df2 を表示
>>> df2
   A          B  C  D      E    F
0  1 2013-01-02  1  3   test  foo
1  1 2013-01-02  1  3  train  foo
2  1 2013-01-02  1  3   test  foo
3  1 2013-01-02  1  3  train  foo

>>> df.dtypes
A           float64
B    datetime64[ns]
C           float32
D             int32
E          category
F            object
dtype: object

列名を表示する

データフレームの列名の一覧を取得するには、columns アトリビュートにアクセスします。

# データフレーム df3 を作成
>>> dates = pd.date_range('20130101', periods=6)
>>> df3 = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))

# データフレーム df3 を表示
>>> df3
                   A         B         C         D
2013-01-01 -0.666903 -1.775545  0.228287  0.954733
2013-01-02 -1.125206  1.574557  1.604302  1.251831
2013-01-03  0.710328 -1.294591  0.172905  1.224386
2013-01-04 -0.528866  0.308870  1.113429 -0.229602
2013-01-05 -0.211232  0.257651  0.555822  1.443542
2013-01-06 -0.218134 -0.359475  1.231674 -0.722727

>>> df3.columns
Index(['A', 'B', 'C', 'D'], dtype='object')

行名 (index) を表示する

データフレームの行名 (インデックス) の一覧を取得するには、index アトリビュートにアクセスします。

>>> df3.index
DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04',
               '2013-01-05', '2013-01-06'],
              dtype='datetime64[ns]', freq='D')

値のみを 2 次元行列として表示する

value アトリビュートにアクセスすることで、列名、行名を除いた値のみの行列を取得できます。

>>> df3.values
array([[-0.66690323, -1.77554512,  0.22828683,  0.95473339],
       [-1.1252062 ,  1.57455744,  1.60430238,  1.25183092],
       [ 0.71032784, -1.29459063,  0.17290515,  1.22438594],
       [-0.52886583,  0.30887016,  1.11342939, -0.22960171],
       [-0.21123248,  0.25765062,  0.55582169,  1.4435418 ],
       [-0.21813353, -0.359475  ,  1.23167432, -0.72272684]])

参考: 10 Minutes to pandas — pandas 0.18.0 documentation