pandas の head() は、DataFrameやSeriesの先頭行を表示するメソッドです。
何も指定せずに df.head() と書くと、標準では先頭5行が表示されます。
CSVやExcelを読み込んだあと、まず df.head() で先頭を確認すると、列名・値の入り方・データの読み込み状態をすばやくチェックできます。
この記事では、df.head() の基本、head(10) のような行数指定、tail() との違い、sample() との使い分け、CSV読み込み後の確認方法まで、初心者向けに出力例つきで解説します。
この記事でわかること
df.head()の意味df.head()で先頭5行が表示される仕組みdf.head(10)のように表示行数を指定する方法head()、tail()、sample()の違い- CSVを読み込んだあとに
head()で確認する流れ print(df.head())、head(0)、df.columnsの使い分け- DataFrameだけでなくSeriesでも
head()が使えること - 先頭1行を表示する
df.head(1)と、値を取り出すdf.iloc[0]の違い
pandas head()とは?DataFrameの先頭行を表示するメソッド
head() は、DataFrameやSeriesの先頭部分を確認するためのメソッドです。
基本形は次のとおりです。
df.head()
df.head() を使うと、DataFrameの最初の数行を表示できます。
大きなデータを扱うとき、全行を表示すると見づらくなるため、まずは head() で先頭だけ確認するのが実務でもよく使われる流れです。
| メソッド | 役割 |
|---|---|
df.head() |
先頭5行を表示 |
df.head(n) |
先頭n行を表示 |
df.tail() |
末尾5行を表示 |
df.sample() |
ランダムに行を表示 |
サンプルデータを用意する
ここでは、売上データを例にします。
商品、カテゴリ、店舗、売上、数量 を持つDataFrameを作成します。
import pandas as pd
df = pd.DataFrame({
"注文ID": [101, 102, 103, 104, 105, 106, 107, 108],
"商品": ["ノートPC", "マウス", "キーボード", "モニター", "USBメモリ", "ノートPC", "マウス", "モニター"],
"カテゴリ": ["PC", "周辺機器", "周辺機器", "周辺機器", "記録媒体", "PC", "周辺機器", "周辺機器"],
"店舗": ["東京", "東京", "大阪", "大阪", "名古屋", "東京", "名古屋", "大阪"],
"数量": [1, 5, 3, 2, 10, 1, 4, 2],
"売上": [120000, 15000, 24000, 64000, 25000, 115000, 11200, 70000]
})
df
| 注文ID | 商品 | カテゴリ | 店舗 | 数量 | 売上 | |
|---|---|---|---|---|---|---|
| 0 | 101 | ノートPC | PC | 東京 | 1 | 120000 |
| 1 | 102 | マウス | 周辺機器 | 東京 | 5 | 15000 |
| 2 | 103 | キーボード | 周辺機器 | 大阪 | 3 | 24000 |
| 3 | 104 | モニター | 周辺機器 | 大阪 | 2 | 64000 |
| 4 | 105 | USBメモリ | 記録媒体 | 名古屋 | 10 | 25000 |
| 5 | 106 | ノートPC | PC | 東京 | 1 | 115000 |
| 6 | 107 | マウス | 周辺機器 | 名古屋 | 4 | 11200 |
| 7 | 108 | モニター | 周辺機器 | 大阪 | 2 | 70000 |
このDataFrameを使って、head() の使い方を確認していきます。
df.head()の基本的な使い方
ここでは、df.head() の標準表示と、表示行数の指定方法を確認します。
df.head()は何も指定しないと先頭5行を表示する
df.head() を実行すると、DataFrameの先頭5行が表示されます。
df.head()
| 注文ID | 商品 | カテゴリ | 店舗 | 数量 | 売上 | |
|---|---|---|---|---|---|---|
| 0 | 101 | ノートPC | PC | 東京 | 1 | 120000 |
| 1 | 102 | マウス | 周辺機器 | 東京 | 5 | 15000 |
| 2 | 103 | キーボード | 周辺機器 | 大阪 | 3 | 24000 |
| 3 | 104 | モニター | 周辺機器 | 大阪 | 2 | 64000 |
| 4 | 105 | USBメモリ | 記録媒体 | 名古屋 | 10 | 25000 |
df.head() の結果を見ると、先頭から5行だけが表示されます。
ここで確認したいのは、主に次のような点です。
- 列名が想定どおりか
- 文字化けしていないか
- 数値列が正しく読み込まれているか
- 不自然な値が入っていないか
- データの雰囲気が想定と合っているか
特にCSVやExcelを読み込んだ直後は、まず df.head() で先頭を確認すると安心です。
df.head(10)で表示する行数を指定する
head() の引数に数値を指定すると、表示する行数を変更できます。
たとえば、先頭3行だけ表示したい場合は、次のように書きます。
df.head(3)
| 注文ID | 商品 | カテゴリ | 店舗 | 数量 | 売上 | |
|---|---|---|---|---|---|---|
| 0 | 101 | ノートPC | PC | 東京 | 1 | 120000 |
| 1 | 102 | マウス | 周辺機器 | 東京 | 5 | 15000 |
| 2 | 103 | キーボード | 周辺機器 | 大阪 | 3 | 24000 |
先頭10行を表示したい場合は、df.head(10) と書きます。
df.head(10)
| 注文ID | 商品 | カテゴリ | 店舗 | 数量 | 売上 | |
|---|---|---|---|---|---|---|
| 0 | 101 | ノートPC | PC | 東京 | 1 | 120000 |
| 1 | 102 | マウス | 周辺機器 | 東京 | 5 | 15000 |
| 2 | 103 | キーボード | 周辺機器 | 大阪 | 3 | 24000 |
| 3 | 104 | モニター | 周辺機器 | 大阪 | 2 | 64000 |
| 4 | 105 | USBメモリ | 記録媒体 | 名古屋 | 10 | 25000 |
| 5 | 106 | ノートPC | PC | 東京 | 1 | 115000 |
| 6 | 107 | マウス | 周辺機器 | 名古屋 | 4 | 11200 |
| 7 | 108 | モニター | 周辺機器 | 大阪 | 2 | 70000 |
今回のDataFrameは8行しかないため、df.head(10) としても全8行が表示されます。
つまり、指定した行数がDataFrameの行数より多い場合でも、エラーにはならず、存在する行だけが表示されます。
| 書き方 | 表示される内容 |
|---|---|
df.head() |
先頭5行 |
df.head(3) |
先頭3行 |
df.head(10) |
先頭10行。ただしデータが10行未満なら全行 |
head()とtail()・sample()の違い
head() と似たメソッドとして、tail() と sample() があります。それぞれの役割を整理します。
head()とtail()の違い
head() とよく一緒に使われるのが tail() です。
違いはシンプルです。
| メソッド | 表示する場所 |
|---|---|
head() |
先頭行 |
tail() |
末尾行 |
まず、head() で先頭を確認します。
df.head()
| 注文ID | 商品 | カテゴリ | 店舗 | 数量 | 売上 | |
|---|---|---|---|---|---|---|
| 0 | 101 | ノートPC | PC | 東京 | 1 | 120000 |
| 1 | 102 | マウス | 周辺機器 | 東京 | 5 | 15000 |
| 2 | 103 | キーボード | 周辺機器 | 大阪 | 3 | 24000 |
| 3 | 104 | モニター | 周辺機器 | 大阪 | 2 | 64000 |
| 4 | 105 | USBメモリ | 記録媒体 | 名古屋 | 10 | 25000 |
次に、tail() で末尾を確認します。
df.tail()
| 注文ID | 商品 | カテゴリ | 店舗 | 数量 | 売上 | |
|---|---|---|---|---|---|---|
| 3 | 104 | モニター | 周辺機器 | 大阪 | 2 | 64000 |
| 4 | 105 | USBメモリ | 記録媒体 | 名古屋 | 10 | 25000 |
| 5 | 106 | ノートPC | PC | 東京 | 1 | 115000 |
| 6 | 107 | マウス | 周辺機器 | 名古屋 | 4 | 11200 |
| 7 | 108 | モニター | 周辺機器 | 大阪 | 2 | 70000 |
head() は先頭5行、tail() は末尾5行を表示します。
CSVやExcelを読み込んだときは、先頭だけでなく末尾も確認すると、途中でデータが切れていないか、最後の行まで正しく読み込まれているかを確認しやすくなります。
たとえば、次のような流れで使えます。
df.head()
df.tail()
先頭と末尾の両方を見ることで、データ全体の読み込み状態をざっくり確認できます。
head()・tail()・sample()の使い分け
DataFrameの一部を確認する方法には、head()、tail()、sample() があります。
それぞれの違いは次のとおりです。
| メソッド | 役割 | 使う場面 |
|---|---|---|
head() |
先頭行を表示 | 読み込み直後にデータの形を確認したい |
tail() |
末尾行を表示 | 最後まで正しく読み込まれているか確認したい |
sample() |
ランダムに行を表示 | データ全体から偏りなく数行を見たい |
sample() は、DataFrameからランダムに行を取り出すメソッドです。
df.sample(3, random_state=0)
| 注文ID | 商品 | カテゴリ | 店舗 | 数量 | 売上 | |
|---|---|---|---|---|---|---|
| 6 | 107 | マウス | 周辺機器 | 名古屋 | 4 | 11200 |
| 2 | 103 | キーボード | 周辺機器 | 大阪 | 3 | 24000 |
| 1 | 102 | マウス | 周辺機器 | 東京 | 5 | 15000 |
head() は先頭だけを見るため、データが並び順に偏っている場合は全体像をつかみにくいことがあります。
そのようなときは、sample() でランダムに数行を確認すると、より全体の雰囲気をつかみやすくなります。
ただし、初心者のうちはまず次の順番で十分です。
df.head()で先頭を確認df.tail()で末尾を確認- 必要に応じて
df.sample()でランダムに確認
CSVを読み込んだあとにhead()で確認する流れ
実際の作業では、CSVを読み込んだ直後に head() を使うことが多いです。
基本の流れは次のとおりです。
df = pd.read_csv("sample.csv")
df.head()
ここでは、CSV読み込み後の確認イメージとして、作成済みのDataFrameを使って流れを確認します。
# 実際には次のようにCSVを読み込むことが多いです
# df = pd.read_csv("sample.csv")
df.head()
| 注文ID | 商品 | カテゴリ | 店舗 | 数量 | 売上 | |
|---|---|---|---|---|---|---|
| 0 | 101 | ノートPC | PC | 東京 | 1 | 120000 |
| 1 | 102 | マウス | 周辺機器 | 東京 | 5 | 15000 |
| 2 | 103 | キーボード | 周辺機器 | 大阪 | 3 | 24000 |
| 3 | 104 | モニター | 周辺機器 | 大阪 | 2 | 64000 |
| 4 | 105 | USBメモリ | 記録媒体 | 名古屋 | 10 | 25000 |
CSVを読み込んだあとに head() を使うと、次の点を確認できます。
| 確認すること | 見るポイント |
|---|---|
| 列名 | 文字化けや余計な空白がないか |
| データ型の雰囲気 | 数値として読まれているか、文字列になっていないか |
| 欠損値 | NaN が不自然に出ていないか |
| 区切り文字 | 1列に全部入ってしまっていないか |
| 先頭行 | ヘッダー行がデータとして混ざっていないか |
read_csv() のあとに df.head() を入れる習慣をつけると、読み込みミスに早く気づけます。
head()の補足的な使い方
ここからは、print(df.head())、head(0)、Series、スライス、iloc との違いなど、実務で迷いやすい補足を整理します。
df.head()とprint(df.head())の違い
Google ColabやJupyter Notebookでは、セルの最後に df.head() と書くだけで表形式で表示されます。
df.head()
| 注文ID | 商品 | カテゴリ | 店舗 | 数量 | 売上 | |
|---|---|---|---|---|---|---|
| 0 | 101 | ノートPC | PC | 東京 | 1 | 120000 |
| 1 | 102 | マウス | 周辺機器 | 東京 | 5 | 15000 |
| 2 | 103 | キーボード | 周辺機器 | 大阪 | 3 | 24000 |
| 3 | 104 | モニター | 周辺機器 | 大阪 | 2 | 64000 |
| 4 | 105 | USBメモリ | 記録媒体 | 名古屋 | 10 | 25000 |
一方、Pythonスクリプトやターミナルで実行する場合は、print(df.head()) と書くことがあります。
print(df.head())
注文ID 商品 カテゴリ 店舗 数量 売上
0 101 ノートPC PC 東京 1 120000
1 102 マウス 周辺機器 東京 5 15000
2 103 キーボード 周辺機器 大阪 3 24000
3 104 モニター 周辺機器 大阪 2 64000
4 105 USBメモリ 記録媒体 名古屋 10 25000
Google Colabでは、基本的に df.head() だけで見やすく表示されます。
| 書き方 | 向いている場面 |
|---|---|
df.head() |
Google Colab・Jupyter Notebook |
print(df.head()) |
Pythonスクリプト・ターミナル |
初心者がColabで学習している場合は、まず df.head() だけで十分です。
head(0)でカラム名だけ確認する
df.head(0) と書くと、行データは表示せず、列名だけを確認できます。
df.head(0)
| 注文ID | 商品 | カテゴリ | 店舗 | 数量 | 売上 |
|---|
head(0) は、データの中身ではなく、列名だけを確認したいときに使えます。
たとえば、列数が多いデータで、どんなカラムがあるかだけ見たい場合に便利です。
ただし、列名だけ確認するなら、次のように df.columns を使う方法もあります。
df.columns
| 0 | 注文ID |
| 1 | 商品 |
| 2 | カテゴリ |
| 3 | 店舗 |
| 4 | 数量 |
| 5 | 売上 |
head(0) は表の形を保ったまま列名を確認したいとき、df.columns は列名の一覧を確認したいときに使いやすいです。
Seriesでもhead()は使える
head() はDataFrameだけでなく、Seriesにも使えます。
Seriesとは、DataFrameの1列を取り出したようなデータです。
たとえば、売上 列だけを取り出して head() を使ってみます。
df["売上"].head()
| 売上 | |
|---|---|
| 0 | 120000 |
| 1 | 15000 |
| 2 | 24000 |
| 3 | 64000 |
| 4 | 25000 |
Seriesに対して head() を使うと、そのSeriesの先頭5件が表示されます。
もちろん、行数指定もできます。
df["売上"].head(3)
| 売上 | |
|---|---|
| 0 | 120000 |
| 1 | 15000 |
| 2 | 24000 |
DataFrameでもSeriesでも、head() の基本的な考え方は同じです。
| 対象 | 書き方 | 結果 |
|---|---|---|
| DataFrame | df.head() |
表全体の先頭5行 |
| Series | df["売上"].head() |
売上列の先頭5件 |
スライスで先頭行を確認する方法との違い
head() と似たことは、スライスでもできます。
たとえば、先頭3行を表示する場合、次の2つは近い結果になります。
df.head(3)
| 注文ID | 商品 | カテゴリ | 店舗 | 数量 | 売上 | |
|---|---|---|---|---|---|---|
| 0 | 101 | ノートPC | PC | 東京 | 1 | 120000 |
| 1 | 102 | マウス | 周辺機器 | 東京 | 5 | 15000 |
| 2 | 103 | キーボード | 周辺機器 | 大阪 | 3 | 24000 |
df[:3]
| 注文ID | 商品 | カテゴリ | 店舗 | 数量 | 売上 | |
|---|---|---|---|---|---|---|
| 0 | 101 | ノートPC | PC | 東京 | 1 | 120000 |
| 1 | 102 | マウス | 周辺機器 | 東京 | 5 | 15000 |
| 2 | 103 | キーボード | 周辺機器 | 大阪 | 3 | 24000 |
どちらも先頭3行を表示できます。
ただし、初心者には df.head(3) の方が意味がわかりやすいです。
| 書き方 | 特徴 |
|---|---|
df.head(3) |
「先頭3行を表示する」と読みやすい |
df[:3] |
Pythonのスライス記法に慣れている人向け |
データ確認の目的なら、まずは head() を使えば十分です。
先頭1行だけ確認する・値を取り出す場合
先頭1行だけ確認したい場合は、df.head(1) を使います。
df.head(1)
| 注文ID | 商品 | カテゴリ | 店舗 | 数量 | 売上 | |
|---|---|---|---|---|---|---|
| 0 | 101 | ノートPC | PC | 東京 | 1 | 120000 |
ただし、head() は基本的には表示して確認するためのメソッドです。
先頭行の値を取り出して計算や処理に使いたい場合は、iloc を使う方が自然です。
df.iloc[0]
| 0 | |
|---|---|
| 注文ID | 101 |
| 商品 | ノートPC |
| カテゴリ | PC |
| 店舗 | 東京 |
| 数量 | 1 |
| 売上 | 120000 |
df.iloc[0] は、DataFrameの先頭行をSeriesとして取り出します。
| やりたいこと | 書き方 |
|---|---|
| 先頭1行を表として表示したい | df.head(1) |
| 先頭行をデータとして取り出したい | df.iloc[0] |
初心者のうちは、画面で確認するなら head()、値を取り出すなら iloc と分けて考えるとわかりやすいです。
よくあるミス
df.head()を書いても全データが表示されると思ってしまう
df.head() は、標準では先頭5行だけを表示します。
全データを表示するメソッドではありません。
df.head(10)で必ず10行表示されると思ってしまう
DataFrameに10行未満しかない場合は、存在する行だけが表示されます。
tail()との違いを混同する
head() は先頭行、tail() は末尾行です。
| メソッド | 表示する行 |
|---|---|
head() |
先頭 |
tail() |
末尾 |
print(df.head())を毎回使う必要があると思ってしまう
Google ColabやJupyter Notebookでは、セルの最後に df.head() と書くだけで表示できます。
Pythonスクリプトで実行する場合は、print(df.head()) を使うことがあります。
head()だけ見てデータ全体を判断してしまう
head() は先頭だけを表示します。
データが並び順に偏っている場合、先頭だけでは全体像を誤解することがあります。
必要に応じて、tail() や sample() も使いましょう。
head()で値を取り出そうとしてしまう
head() は、基本的には先頭行を画面で確認するためのメソッドです。
先頭行そのものを取り出して処理したい場合は、df.iloc[0] を使う方が自然です。
実務でのおすすめ確認手順
CSVやExcelを読み込んだあと、最初に何を確認すればよいかわからない場合は、次の順番がおすすめです。
df.head()
df.tail()
df.info()
df.describe()
それぞれの役割は次のとおりです。
| 手順 | 使うメソッド | 確認すること |
|---|---|---|
| 1 | head() |
先頭行、列名、読み込み状態 |
| 2 | tail() |
末尾まで正しく読み込めているか |
| 3 | info() |
データ型、欠損値、行数 |
| 4 | describe() |
数値列の統計量 |
head() は、データ確認の最初の一歩です。
その後、info() や describe() に進むと、データの構造や統計量をより詳しく確認できます。
まとめ
この記事では、pandas の head() の使い方を解説しました。
重要なポイントは次のとおりです。
| 書き方 | 意味 |
|---|---|
df.head() |
DataFrameの先頭5行を表示 |
df.head(n) |
DataFrameの先頭n行を表示 |
df.tail() |
DataFrameの末尾5行を表示 |
df.sample(n) |
DataFrameからランダムにn行を表示 |
df.head(0) |
行データを表示せず、列名だけ確認 |
df["列名"].head() |
Seriesの先頭5件を表示 |
df.iloc[0] |
先頭行をSeriesとして取り出す |
head() は、CSVやExcelを読み込んだ直後に、データが正しく読み込めているかを確認するための基本メソッドです。
最初は、次の流れを覚えておけば十分です。
df.head()
df.tail()
df.info()
df.describe()
まず head() で先頭を確認し、必要に応じて tail()、sample()、info()、describe() へ進みましょう。
次に読みたい関連記事
- Pandas DataFrame入門|作り方・基本操作をわかりやすく解説
- Google ColabでCSVを読み込む方法|Drive連携とpandas read_csvを初心者向けに解説
- pandas describe()の使い方|統計量の意味・include=’all’・info()との違いを解説
- pandas value_counts()の使い方|件数集計・割合表示・欠損値の数え方を解説
- pandas 条件抽出(filtering)入門|AND/OR・query関数・複数条件の指定方法
- Pandas locとilocの違い|行・列の抽出/スライス/条件指定を図解で解説
公式ドキュメント
詳しい仕様を確認したい場合は、pandas公式ドキュメントも参考になります。
pandasのhead()は何をするメソッドですか?
head() は、DataFrameやSeriesの先頭行を表示するメソッドです。df.head() と書くと、標準では先頭5行が表示されます。
df.head()は何行表示しますか?
何も指定しない場合は、先頭5行を表示します。表示行数を変えたい場合は、df.head(10) のように引数で行数を指定します。
df.head(10)とは何ですか?
df.head(10) は、DataFrameの先頭10行を表示する書き方です。データが10行未満の場合は、存在する行だけが表示されます。
head()とtail()の違いは何ですか?
head() は先頭行、tail() は末尾行を表示します。読み込み直後は、head() で先頭を確認し、tail() で最後まで読み込まれているか確認すると便利です。
head()とsample()はどう使い分けますか?
head() は先頭行を表示し、sample() はランダムに行を表示します。データの先頭だけ確認したいときは head()、全体から偏りなく数行を見たいときは sample() が向いています。
Seriesにもhead()は使えますか?
はい。df["売上"].head() のように、Seriesにも head() を使えます。Seriesの場合は、その列の先頭5件が表示されます。
Google Colabではprint(df.head())が必要ですか?
通常は不要です。Google ColabやJupyter Notebookでは、セルの最後に df.head() と書くだけで表形式で表示されます。Pythonスクリプトで実行する場合は、print(df.head()) を使うことがあります。
head(0)は何に使いますか?
df.head(0) は、行データを表示せずに列名だけ確認したいときに使えます。列数が多いDataFrameで、カラム構成だけ確認したい場合に便利です。
先頭1行だけ表示するにはどうすればよいですか?
df.head(1) と書くと、先頭1行だけを表示できます。表として確認したい場合は df.head(1)、先頭行の値を取り出したい場合は df.iloc[0] を使うとよいです。
コメント