このページでは、Pandas のデータフレームの中身を確認する方法を紹介します。
先頭 N 行を表示する
head([表示する行数])
メソッドでデータフレームの先頭 N 行を切り出すことができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
>>> 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 行を切り出すことができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
>>> # 末尾 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) を確認することができます。
1 2 3 4 5 6 7 8 9 10 |
>>> 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) を確認することができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# データフレーム 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
アトリビュートにアクセスします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# データフレーム 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
アトリビュートにアクセスします。
1 2 3 4 |
>>> 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
アトリビュートにアクセスすることで、列名、行名を除いた値のみの行列を取得できます。
1 2 3 4 5 6 7 |
>>> 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