CSVやExcelを読み込んだあと、「データが正しく入っているか、まず数行だけ確認したい」と思うことはありませんか。
pandasのhead()は、DataFrameやSeriesの先頭行を表示するメソッドです。引数を省略してdf.head()と書くと先頭5行、df.head(3)なら先頭3行を表示します。
この記事では、Google Colabでそのまま動かせるコードを使い、head()の基本、tail()・sample()との違い、CSVを読み込んだあとの確認手順まで解説します。コードの結果を見ながら進められるため、pandasを使い始めたばかりでも再現できます。
この記事でわかること
df.head()で先頭5行を表示する方法df.head(3)やdf.head(10)で行数を指定する方法head()・tail()・sample()の違い- Google Colabで
print(df.head())が必要になる場面 - CSVを読み込んだあとにデータを確認する順番
head()だけでは確認できないこと
先に結論:df.head()でDataFrameの先頭5行を表示する
基本構文は次のとおりです。
df.head() # 先頭5行
df.head(3) # 先頭3行
df.head(10) # 先頭10行head()の丸括弧内には、表示したい行数を整数で指定します。何も指定しない場合の標準値は5です。
head()は元のDataFrameを書き換えません。データを削除する処理ではなく、先頭部分を確認するための処理です。
サンプルDataFrameを用意する
まず、6件の売上データをNotebook内で作ります。外部ファイルは必要ありません。
import pandas as pd
try:
from IPython.display import display
except ImportError:
# 通常のPython環境で実行した場合の表示用
def display(obj):
print(obj)
df = pd.DataFrame({
"商品": ["A", "B", "C", "D", "E", "F"],
"売上": [1200, 980, 1500, 1100, 1350, 1600]
})
dfこのDataFrameには、商品列と売上列があり、全部で6行あります。以降は同じdfを使うため、コードと出力の違いを比較しやすくなります。
df.head()の基本的な使い方
引数なしのdf.head()は先頭5行を表示する
目的は、DataFrameの先頭部分を素早く確認することです。
df.head()出力にはA〜Eの5行が表示されます。元のDataFrameは6行ありますが、引数を省略したhead()は標準で先頭5行だけを返します。
列名、値の入り方、文字列や数値が想定どおり並んでいるかを最初に確認するときに便利です。
df.head(3)で表示行数を指定する
3行だけ確認したい場合は、丸括弧内に3を指定します。
df.head(3)A〜Cの3行が表示されます。指定した数が「先頭から表示する行数」です。行番号3までという意味ではありません。
df.head(10)で元データより多い行数を指定した場合
元のDataFrameは6行です。ここで10行を指定して、結果を確認します。
df.head(10)エラーにはならず、存在する6行がすべて表示されます。head(10)を実行しても、DataFrameに10行未満しかなければ、存在しない行が追加されることはありません。
head()・tail()・sample()の違い
どの位置を見たいかによって、使うメソッドが変わります。
| メソッド | 確認する位置 | 基本構文 | 主な用途 | 表示順・再現性 |
|---|---|---|---|---|
head() |
先頭 | df.head(3) |
読み込み直後の列名や値を確認 | 元の先頭順 |
tail() |
末尾 | df.tail(3) |
最終行や直近データを確認 | 元の末尾順 |
sample() |
ランダム | df.sample(3) |
先頭に偏らず複数箇所を見る | 通常は実行ごとに変わる |
同じDataFrameから3行ずつ表示して比べます。
print("head(3):先頭3行")
display(df.head(3))
print("tail(3):末尾3行")
display(df.tail(3))
print("sample(3):ランダムな3行")
display(df.sample(3, random_state=0))head(3)はA〜C、tail(3)はD〜Fを表示します。sample(3)はデータ全体から3行を選ぶため、先頭や末尾だけに偏りません。
記事と同じ結果を再現できるよう、sample()にはrandom_state=0を指定しています。実務でランダムな行を毎回選び直したい場合は、この指定を省略できます。
ポイント:読み込み直後はまず
head()、末尾も確認したいならtail()、全体から偏りなく見たいならsample()と使い分けます。
CSVを読み込んだあとにhead()で確認する流れ
実務では、CSVファイルをread_csv()で読み込んだ直後にhead()を使うことがよくあります。
ここではColabだけで再現できるよう、先ほどのDataFrameからサンプルCSVを作成してから読み込みます。
# Colabの作業フォルダにサンプルCSVを作成
df.to_csv("sales.csv", index=False, encoding="utf-8")
# CSVをDataFrameとして読み込む
sales_df = pd.read_csv("sales.csv")
# 読み込み結果の先頭を確認
sales_df.head()先頭5行が正しく表示されれば、列名と値を読み込めていることを最初に確認できます。
ただし、head()だけではデータ型や欠損数までは十分に分かりません。CSVのアップロードやGoogle Driveからの読み込みを詳しく知りたい場合は、Google ColabでCSVを読み込む方法を参照してください。
Google Colabではprint(df.head())が必要?
セルの最後にdf.head()を書く場合、Google Colabは結果を表形式で表示するため、通常はprint()を付けなくても構いません。
# セルの最後なら表形式で表示される
df.head()一方、1つのセルで複数の結果を確実に表示したい場合は、display()が分かりやすい方法です。
display(df.head(2))
display(df.tail(2))print(df.head())でも内容は確認できますが、Colabではテキスト形式になります。表として見たい場合は、セル末尾に式を書くかdisplay()を使うと読みやすくなります。
head()の補足的な使い方
head(0)で列名だけ確認する
head(0)は、データ行を表示せず、列の構造だけを返します。
df.head(0)0行でも商品と売上の列名は残ります。ただし、列名だけを一覧で取得する目的ならdf.columnsも使えます。
Seriesでもhead()を使える
DataFrameの1列を選ぶとSeriesになります。Seriesでもhead()の基本は同じです。
sales_series = df["売上"]
sales_series.head(3)売上列の先頭3件、1200・980・1500が表示されます。DataFrameだけでなく、1列のSeriesを確認するときにも使えます。
先頭1行の「表」と「値」を区別する
df.head(1)は1行のDataFrameを返します。一方、df.iloc[0]は先頭行をSeriesとして取り出します。
print("head(1)の型:", type(df.head(1)).__name__)
print("iloc[0]の型:", type(df.iloc[0]).__name__)
display(df.head(1))
display(df.iloc[0])見た目が似ていても戻り値の型が異なります。先頭行を表の形で確認するならhead(1)、位置を指定して行や値を取り出すならilocを使います。詳しい使い分けは、pandasのlocとilocの違いで確認できます。
よくあるミスと初心者向け注意点
1. head()で全データを表示したと思ってしまう
df.head()が表示するのは標準で先頭5行だけです。DataFrame全体が5行とは限りません。全行数はdf.shape[0]で確認できます。
2. head(10)なら必ず10行表示されると思ってしまう
元データが10行未満なら、存在する行だけが返ります。エラーにはなりません。
3. head()が元データを変更すると思ってしまう
head()は表示対象となる先頭部分を返すだけで、元のDataFrameを削除・並べ替え・上書きしません。
4. head()だけでデータ全体を判断する
先頭行に欠損値がなくても、後半に欠損値があるかもしれません。先頭数行を見ただけでは、データ型、欠損数、分布、外れ値は判断できません。
5. head(1)で取得した値をそのまま計算に使おうとする
head(1)の戻り値はDataFrameです。1つの値が必要なら、目的に応じてilocやatなどを使います。
実務の確認順:head()→info()→describe()
CSVを読み込んだあとは、次の順番で確認すると迷いにくくなります。
| 確認したいこと | メソッド | 分かること |
|---|---|---|
| 列名や値の入り方 | head() |
先頭数行、表記、読込結果の見た目 |
| 行数・列数・型・欠損の概要 | info() |
Non-Null Count、dtype、メモリ使用量 |
| 数値の中心・ばらつき・範囲 | describe() |
count、mean、std、最小値、四分位数、最大値 |
目的は、読み込んだデータを段階的に確認することです。
print("1. 先頭行を確認")
display(sales_df.head())
print("2. 構造・データ型・欠損の概要を確認")
sales_df.info()
print("3. 数値列の統計量を確認")
display(sales_df.describe())この例では、head()で値の入り方、info()で2列の型と非欠損数、describe()で売上の平均値や範囲を確認できます。
DataFrameそのものの基本はPandas DataFrameとは?、構造確認はpandas info()の使い方、統計量の読み方はpandas describe()の使い方で詳しく解説しています。
まとめ
df.head()はDataFrameの先頭5行を表示するdf.head(n)で表示する行数を指定できる- 元データより大きなnを指定しても、存在する行だけが返る
- 先頭は
head()、末尾はtail()、ランダムな行はsample() head()は元のDataFrameを変更しない- CSV読込後は
head()→info()→describe()の順に確認すると分かりやすい head()だけでは、データ全体の欠損・型・分布までは判断できない
まずdf.head()で読み込み結果を確認し、必要に応じてinfo()やdescribe()へ進みましょう。
関連記事
- Google ColabでCSVを読み込む方法|アップロード・Drive・read_csv
- Pandas DataFrameとは?作り方・基本操作・Seriesとの違い
- pandas info()の使い方|Non-Null Count・データ型・欠損値の見方
- pandas describe()の使い方|統計量の意味と結果の見方
- Pandas locとilocの違い|行・列の抽出・スライス・条件指定
公式ドキュメント
pandasのhead()は何をするメソッドですか?
DataFrameまたはSeriesの先頭から指定した行数を返すメソッドです。元のデータは変更しません。
df.head()は何行表示しますか?
引数を省略すると、先頭5行を表示します。
df.head(10)とは何ですか?
DataFrameの先頭から10行を表示する指定です。元データが10行未満なら、存在する行だけを表示します。
head()とtail()・sample()はどう使い分けますか?
先頭を見るならhead()、末尾を見るならtail()、データ全体からランダムに確認するならsample()を使います。
Google Colabではprint(df.head())が必要ですか?
head() は先頭行を表示し、sample() はランダムに行を表示します。データの先頭セルの最後にdf.head()を書く場合は通常不要です。1つのセルで複数の表を表示するときはdisplay()が便利です。
コメント