最終更新日:2021/7/15
データフレーム(df)の行数、列数といったデータの大きさ(サイズ)、カラムの型を調べる方法を説明します。
未知のデータを分析する際、これらの調査は必須です。
あるいは、dfの列同士の計算を試みてエラーとなった場合に、その原因を調べるのに、型を調べるのは有効です。それは、例えば、計算が出来ない型同士の演算を試みている場合が考えられます。
【説明すること】
- 1. 読み込んだデータ(df)をとりあえず見てみる
- 2. サイズ(行数、列数)を調べる
- 行数、列数を同時に調べる:
df.shape
- 行数だけを調べる:
len(df)
- 列数だけを調べる:
len(df.columns)
- もっと詳しい情報を調べる:
df.info()
/df.dtypes
- 行数、列数を同時に調べる:
1. 読み込んだデータ(df)をとりあえず見てみる
ここでは以下の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の重要な情報が得られ、よく使います。