最終更新日:2021/7/15

データフレーム(df)の行数、列数といったデータの大きさ(サイズ)、カラムの型を調べる方法を説明します。
未知のデータを分析する際、これらの調査は必須です。

あるいは、dfの列同士の計算を試みてエラーとなった場合に、その原因を調べるのに、型を調べるのは有効です。それは、例えば、計算が出来ない型同士の演算を試みている場合が考えられます。

【説明すること】

1. 読み込んだデータ(df)をとりあえず見てみる

ここでは以下のcsvファイルを読み込んでみます。

a003_003a.csv


pd.read_csv()でデータを読み込んだ際に、うまく出来たかどうかを必ず確認します。特に、pd.read_csv(skiprows=n)pd.read_csv(skipfooter=n)で、最初または最後をスキップした場合には必ず確認します。

print(df)でもいいのですが、行数や列数が大きい事が予想される場合は、最初の数行や最後の数行を見てみます。

最初の数行を見る: df.head()

df.head()で最初の5行が出力されます。


df.head(n)のように、カッコにn(数字)を入れれば、最初のn行だけ出力されます。

最後の数行を見る: df.tail()

逆に最後を確認したい場合があります。
df.tail()で最後の5行が出力されます。


df.tail(n)のように、カッコにn(数字)を入れれば、最後のn行だけ出力されます。

途中の数行を見る: df[a:b]

途中の数行を見たい場合はdf[a:b]と書きます。
ここで重要なのは、aもbも0始まりの行番号を入れ、bの行番号は含まない点です。
以下のdf1[3:5]は、0始まりの3行目から、0始まりの4行目までです。5行目は含みません。
なお、この[3:5]のような書き方を「スライス」と呼び、dfではよく使います。

2.サイズ(行数、列数)を調べる

この項目は、以下のリンク先がとても詳しいので、詳細はそちらに譲ります。とても質の高いサイトです。
ここでは、よく使う部分だけ記述します。

https://note.nkmk.me/python-pandas-len-shape-size/

行数、列数を同時に調べる: df.shape

行、列の両方を同時に調べる場合はdf.shapeです。
(x,y)で表示されますが、xが行数、yが列数です。

行数だけを調べる: len(df)

行だけならばlen(df)です。
または、上記のdf.shapeを使ってdf.shape[0]でも可能です。[0]は、df.shapeの結果の0番目(上記の例ではx)を取得するという意味です。


なお、len()はlistの大きさ(listに何個の要素があるか)を調べる際にも使用します。この場合、len(li)と書きます。

列数だけを調べる: len(df.columns)

列だけならばlen(df.columns)です。
ポイントはdfの後に.columnsと書く事と、.columnsにカッコは不要という点です。
または、上記のdf.shapeを使ってdf.shape[1]でも可能です。[1]は、df.shapeの結果の1番目(上記の例ではy)を取得するという意味です。

もっと詳しい情報を調べる: df.info()

型を調べる場合はdf.dtypesでもよいのですが、df.info()だと、もっと多くの情報が得れます。
ポイントは.info()と、最後にカッコ()がつく点です。これはよく間違えます。
df.infoでは型以外にも、カラム名や欠損値でないデータの数など、dfの重要な情報が得られ、よく使います。