【第4回】【初心者向け】Pandasのhead関数の使い方とDataFrameの先頭行を表示する具体的手順を解説

Pythonのデータ分析ライブラリ「Pandas」では、DataFrameという表形式のデータ構造が用意されています。この記事では、DataFrameの作成方法と、データの確認に便利なhead()関数の使い方を紹介します。

▶️ headの公式ドキュメントも参考にしてください:
pandas DataFrame head Documentation

Pandasのインポート

import pandas as pd

DataFrameの作成

data = {
  "名前": ["太郎", "花子", "次郎", "美香", "健一", "恵子", "翔", "茜", "隆", "葵"],
  "年齢": [23, 29, 35, 42, 18, 33, 27, 24, 31, 30],
  "職業": ["エンジニア", "デザイナー", "教師", "医師", "学生", "看護師", "プログラマー", "販売員", "弁護士", "研究者"],
  "年収(円)": [4500000, 5500000, 4900000, 7300000, 0, 4000000, 6000000, 3200000, 8000000, 5800000],
  "居住地": ["東京", "大阪", "名古屋", "札幌", "福岡", "東京", "神戸", "仙台", "横浜", "千葉"],
  "勤続年数": [2, 4, 10, 15, 1, 5, 3, 1, 12, 8]
}
df = pd.DataFrame(data)
【失敗談】初めてDataFrameを作成したとき、列数とデータ数が一致せず、ValueErrorで悩みました。そのため、辞書形式で列毎に定義し、各リストの長さを統一するようにしています。
df
名前 年齢 職業 年収(円) 居住地 勤続年数
0 太郎 23 エンジニア 4500000 東京 2
1 花子 29 デザイナー 5500000 大阪 4
2 次郎 35 教師 4900000 名古屋 10
3 美香 42 医師 7300000 札幌 15
4 健一 18 学生 0 福岡 1
5 恵子 33 看護師 4000000 東京 5
6 27 プログラマー 6000000 神戸 3
7 24 販売員 3200000 仙台 1
8 31 弁護士 8000000 横浜 12
9 30 研究者 5800000 千葉 8

head()の使い方

先頭5行を表示

df.head()
名前 年齢 職業 年収(円) 居住地 勤続年数
0 太郎 23 エンジニア 4500000 東京 2
1 花子 29 デザイナー 5500000 大阪 4
2 次郎 35 教師 4900000 名古屋 10
3 美香 42 医師 7300000 札幌 15
4 健一 18 学生 0 福岡 1

任意の行数を表示

df.head(3)  # 先頭3行
名前 年齢 職業 年収(円) 居住地 勤続年数
0 太郎 23 エンジニア 4500000 東京 2
1 花子 29 デザイナー 5500000 大阪 4
2 次郎 35 教師 4900000 名古屋 10

カラム名のみ確認

df.head(0)
名前 年齢 職業 年収(円) 居住地 勤続年数

補足:df.head(0) を使うと、データは表示されませんが、列名(カラム名)だけを確認したいときに便利です。データの構造を把握したり、列の順番をチェックする際に役立ちます。

【体験談】最初にhead(0)を使ったとき、「何も出力されない=エラーかな?」と勘違いしてしまい、無駄に調べ回ってしまいました。しかし実際には「カラム名だけを見るテクニック」として有効な方法だと後から知り、以後は必ず最初にhead(0)で列名をチェックしています。

(補足)print()との組み合せ

print(df.head(3))

実行すると、以下のような出力になって行と列の対応関係が見づらいので、Google ColabやJupyter Notebookでは表形式できれいに表示できる「df.head()」で出力するのがおすすめです。


 名前   年齢       職業     年収(円)  居住地  勤続年数
0   太郎   23   エンジニア   4500000   東京       2
1   花子   29   デザイナー   5500000   大阪       4
2   次郎   35       教師   4900000   名古屋    10
  

変数として保存

first_rows = df.head(3)
【実用アドバイス】このようにheadで得た結果を変数として保存しておくと、次のステップ(たとえばグラフ描画やCSV保存)にスムーズにつながります。

tail()との比較

df.tail()   # 末尾5行を表示
名前 年齢 職業 年収(円) 居住地 勤続年数
5 恵子 33 看護師 4000000 東京 5
6 27 プログラマー 6000000 神戸 3
7 24 販売員 3200000 仙台 1
8 31 弁護士 8000000 横浜 12
9 30 研究者 5800000 千葉 8
df.tail(2)     # 末尾2行を表示
名前 年齢 職業 年収(円) 居住地 勤続年数
8 31 弁護士 8000000 横浜 12
9 30 研究者 5800000 千葉 8
【補足】tail()は「データの末尾に異常値や欠損があるか」を確認する際に非常に有効です。私自身、過去に末尾だけNaNが入っていたCSVをそのまま分析に使ってしまい、統計値が狂ってしまった経験があります。以後は必ずtail()で末尾も確認しています。

▶️ tailの公式ドキュメントも参考にしてください:
pandas DataFrame tail Documentation

まとめ

構文 説明
df.head() 先頭5行を表示
df.head(n) 先頭n行を表示
df.head(0) カラム名のみ表示(df.tail(0)も同様)
df.tail() 末尾5行を表示
df.tail(n) 末尾n行を表示

このように、head()は大きなデータの中身をざっと確認するのにとても便利です。次回はデータの統計量など全体像をつかむことができるinfo()describe()を解説していきます!

▲ ページトップへ戻る

コメント

タイトルとURLをコピーしました