Python環境を起動中... 初回のみ数秒かかります
Lesson 4 / 12

データの全体像をつかむ

このレッスンで学ぶこと

  • head / tail でデータの先頭・末尾を確認できる
  • info で列の型・欠損・行数を一覧できる
  • describe で数値列のサマリ統計を一発表示できる
  • 大きなデータを受け取ったとき、最初にすべきことが分かる

1. まず「データを眺める」ことから

データ分析は、いきなり集計や加工から始めるものではありません。 最初にやるべきは 「どんなデータが、どれだけ、どんな型で入っているか」を把握することです。 これを データの全体像をつかむ(探索) と言います。

特に、何百行もある大きなデータは print(df) で全部表示すると逆に分かりにくくなります。 pandasには、大きなデータでも要点だけを素早く確認できるメソッドが用意されています。 このレッスンで、その「最初の一手」を身につけましょう。

💡 これから使う「確認の4点セット」:

  • df.head() / df.tail() … 先頭・末尾を数行だけ見る
  • df.shape … 何行×何列か(レッスン2で学習)
  • df.info() … 列名・型・欠損の有無・行数を一覧
  • df.describe() … 数値列のサマリ統計(レッスン1で学習)

2. head / tail — 先頭・末尾をのぞく

df.head(n) は先頭 n 行、df.tail(n) は末尾 n 行だけを表示します。 n を省略すると 5 行が表示されます。「データがちゃんと読み込めているか」「列名は正しいか」を ひと目で確認できる、最もよく使うメソッドです。

sample_1.py
Ctrl+Enter
出力

🩺 医療データ文脈: 数千人分の健診データを読み込んだとき、まず df.head() で「列名は想定どおりか」「数値が文字列になっていないか」を確認します。 ここで異変に気づければ、後の集計ミスを防げます。「読み込んだら、まず head()」が鉄則です。

3. info — 列の型と欠損をまとめて確認

df.info() は、データフレーム全体の情報を1つにまとめて表示します。 「各列の名前・データ型・欠損していない件数・全体の行数」が一覧でき、 欠損値(データの抜け)があるかどうかもここで分かります。

sample_2.py
Ctrl+Enter
出力

💡 info() の読みどころ:

  • Non-Null Count(非欠損の件数)… 全行数より少なければ、その列に欠損がある
  • Dtype … 各列の型(object=文字列、int64/float64=数値)
  • RangeIndex … 全体の行数

info()print() で囲まなくてもそのまま表示されます(戻り値ではなく直接出力するメソッドのため)。欠損値の本格的な処理は レッスン7「欠損値の扱い」 で扱います。

4. describe — 数値列のサマリ統計

レッスン1でも触れた df.describe() は、データの「分布」を素早くつかむのに最適です。 件数・平均・標準偏差・最小〜最大・四分位数が一覧でき、「だいたいどのくらいの値が、どれだけばらついているか」が分かります。

sample_3.py
Ctrl+Enter
出力

💡 探索の黄金ルーティン: データを受け取ったら、head()info()describe() の順に実行するのが定番です。 「中身を見る → 型と欠損を確認 → 分布をつかむ」という流れで、わずか数行でデータの全体像を把握できます。 ここまでやって初めて、安心して集計や加工に進めます。

5. 練習問題

問題 1

先頭5行と全体の行数を確認しよう

下記の df について、先頭5行(head)shape を表示してください。

exercise_1.py
出力
ヒントを見る(答え+解説)
import pandas as pd

df = pd.DataFrame({
    "患者ID": ["P001","P002","P003","P004","P005","P006","P007"],
    "年齢":   [45, 62, 33, 55, 71, 48, 29],
    "SBP":    [120, 145, 118, 138, 160, 128, 110],
})

# 先頭5行と shape を表示してください
print(df.head())          # head() は省略すると5行
print("shape:", df.shape)   # (7, 3)

df.head() は引数を省略すると先頭5行を表示します。df.shape(7, 3)=7人×3列。データを受け取ったらまずこの2つで全体像を確認します。

問題 2

info で型と件数を確認しよう

下記の df に対して info() を実行し、各列の型と件数を確認してください。

exercise_2.py
出力
ヒントを見る(答え+解説)
import pandas as pd

df = pd.DataFrame({
    "氏名": ["山田","伊藤","中村","小林"],
    "年齢": [40, 58, 29, 65],
    "体温": [36.5, 37.2, 36.8, 38.1],
})

# info() で全体情報を表示してください
df.info()

df.info() だけで、列名・型(氏名=object、年齢=int64、体温=float64)・各列の非欠損件数(4)・全行数が一覧表示されます。print() で囲む必要はありません。欠損があれば Non-Null Count が4より少なくなります。

問題 3

describe でサマリ統計を出そう

下記の df に対して describe() を実行し、さらに SBPの平均を表示してください。

exercise_3.py
出力
ヒントを見る(答え+解説)
import pandas as pd

df = pd.DataFrame({
    "SBP": [120, 145, 118, 138, 160, 128],
    "DBP": [80, 92, 76, 88, 98, 84],
})

# describe() と SBPの平均を表示してください
print(df.describe())
print("SBPの平均:", df["SBP"].mean())   # 134.83...

describe() でSBP・DBPそれぞれのサマリ統計が一覧表示されます。SBPの平均は (120+145+118+138+160+128)/6 = 134.83... です。

6. まとめ

このレッスンのポイント

  • 分析は「データを眺める(全体像の把握)」から始める
  • head(n) / tail(n):先頭・末尾を数行だけ確認(省略時5行)
  • info():列名・型・欠損の有無・行数を一覧(print不要)
  • describe():数値列のサマリ統計(分布をつかむ)
  • 黄金ルーティン:head() → info() → describe()

自由に試してみましょう:

free_practice.py
出力

完了するとコース一覧に進捗が記録されます