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

pandasとは?なぜ学ぶのか

このレッスンで学ぶこと

  • pandasとは何か・なぜ学ぶのかを理解できる
  • Excelとの違い・pandasが得意なことを把握できる
  • DataFrame を作って医療データを表として扱える
  • 列の集計や describe() でデータの概要をつかめる

1. pandasとは?なぜ学ぶのか

pandas(パンダス)は、Pythonで表形式のデータを扱うためのライブラリです。 ExcelやCSVのような「行と列で構成された表」を、Pythonのコードで自在に操作できるようにしてくれます。 この表を表す中心的なデータ構造を DataFrame(データフレーム) と呼びます。

データ分析・統計処理・機械学習の前処理など、「データを扱う」あらゆる場面でpandasは事実上の標準です。 医療の世界でも、患者カルテ・検査結果・バイタルデータなど、扱う情報の多くは「患者×項目」の表の形をしています。 pandasを学ぶことは、医療データ分析の土台を身につけることそのものなのです。

🌱 このコースの前提: このコースは Python初学者コース 修了レベル(変数・リスト・辞書・関数の基礎)を前提としています。 NumPyの知識は不要です。「Pythonの基礎がまだ不安」という方は、先に初学者コースを完走してから戻ってくるとスムーズに学べます。

⚠ 初回の読み込みについて: このコースのコードは pandas を使います。pandasは少し大きなライブラリのため、 各ページで最初にコードを実行するとき、読み込みに数秒〜十数秒かかります(2回目以降は速くなります)。 画面上部のバーが消えたら準備完了の合図です。

「それならExcelでいいのでは?」と思うかもしれません。pandasがExcelより優れている点を整理しておきましょう。

Excelpandas
大量データ数万行で重くなる数十万〜数百万行も高速処理
処理の再現手作業。やり直しが大変コードに残る。同じ処理を一瞬で再実行
自動化マクロが必要・複雑コードでそのまま自動化できる
他ツール連携限定的機械学習・グラフ・DBとシームレスに連携
手軽さすぐ開けて直感的最初は学習が必要(でも一度覚えれば強力)

🩺 医療データ文脈: 「100人の患者の検査値から、診断名ごとの平均を出したい」「血圧が基準値を超えた患者だけ抽出したい」—— こうした作業は、Excelだと手作業で時間がかかりますが、pandasなら数行のコードで一瞬です。 しかも同じ処理を、来月の新しいデータにそのまま再利用できます。

2. 最初のDataFrameを作ってみよう

さっそくコードを動かしてみましょう。pandasを使うときは、 import pandas as pd と書いて読み込み、以降は pd という短い名前で呼び出すのが世界共通の慣習です。

一番シンプルなDataFrameの作り方は、辞書(dict)を pd.DataFrame() に渡す方法です。 辞書の「キー」が列名に、「値(リスト)」が各列のデータになります。

sample_1.py
Ctrl+Enter
出力

💡 DataFrameの構造: 一番左に表示される 0, 1, 2, 3 の番号は index(インデックス=行ラベル) です。 指定しなければ自動で 0 から振られます。上の行に並ぶ 氏名・年齢・BMI・診断名columns(列名) です。 「index(行)× columns(列)」でデータの位置が決まる——これがDataFrameの基本です。

3. 列を取り出して集計してみよう

DataFrameの便利さは、列を取り出して一発で集計できるところにあります。 df["列名"] と書くと、その列だけを取り出せます。取り出した列に対して .mean()(平均)や .max()(最大)などを付けるだけで、集計結果が得られます。

sample_2.py
Ctrl+Enter
出力

💡 取り出した1列は「Series」: df["年齢"] で取り出した1列のデータを、pandasでは Series(シリーズ) と呼びます。 「DataFrame(表)の各列はSeries(1列のデータ)」という関係です。 SeriesとDataFrameの詳しい違いは、次のレッスンで扱います。

💡 出力の最後に出る「Name / dtype」の行: print(df["年齢"]) を実行すると、値の下に Name: 年齢, dtype: int64 という行が出ます。 これは値ではなく、Series の補足情報です。

  • Name: 年齢 … この列(Series)の名前。元の列名がそのまま付きます
  • dtype: int64 … データ型(dtype)。int64 は「整数」という意味です

表(DataFrame)を print したときには出ない、1列(Series)だけを表示したときの特徴です。 「余計なものが出た」と驚かなくて大丈夫——dtype の詳しい話は次のレッスンで扱います。

🩺 医療データ文脈: df["BMI"].mean() のように1行書くだけで、患者集団の平均BMIが求まります。 これが100人・1000人のデータでも、コードはまったく同じ。Excelで一人ずつ確認する必要はありません。 「集団の傾向をひと目でつかむ」のがpandasの真骨頂です。

4. describe() でデータの概要を一発表示

データ分析の第一歩は「まずデータ全体を眺める」ことです。 pandasには、数値列の統計サマリ(件数・平均・標準偏差・最小〜最大など)を たった1行で表示する describe() という便利なメソッドがあります。

sample_3.py
Ctrl+Enter
出力

💡 describe() の読み方:

  • count:データの件数(欠損を除く)
  • mean:平均、std:標準偏差(ばらつき)
  • min / max:最小値・最大値
  • 25% / 50% / 75%:四分位数(50%は中央値)

数値の列(年齢・BMI)だけが自動的に対象になり、文字列の列(氏名・診断名)は除かれます。 「データを受け取ったら、まず describe()」が分析の定番の入り口です。

5. 練習問題

各セルのコードを書き換えて「▶ 実行」を押してみましょう。「↺ リセット」で元のコードに戻せます。

問題 1

患者データのDataFrameを作ろう

3人の患者データから DataFrame を作り、表として表示し、shape も確認してください。
列:氏名(山田・伊藤・中村)、年齢(40・58・29)、SBP(最高血圧:130・150・118)

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

# 辞書から DataFrame を作ってください
df = pd.DataFrame({
    "氏名": ["山田", "伊藤", "中村"],
    "年齢": [40, 58, 29],
    "SBP":  [130, 150, 118],
})

# 表として表示し、shape も確認してください
print(df)
print("shape:", df.shape)   # (3, 3)

辞書の「キー」が列名、「値(リスト)」が各列のデータになります。print(df) で表として表示され、df.shape(行数, 列数) のタプル=今回は (3, 3) です。

問題 2

列を取り出して集計しよう

下記の df から SBP(最高血圧)の列を取り出し、平均最大を表示してください。

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

df = pd.DataFrame({
    "氏名": ["山田", "伊藤", "中村", "小林", "加藤"],
    "SBP":  [130, 150, 118, 142, 125],
})

# SBP の列を取り出し、平均と最大を表示してください
print("平均:", df["SBP"].mean())   # 133.0
print("最大:", df["SBP"].max())    # 150

df["SBP"] で列(Series)を取り出し、.mean().max() で集計します。5人のSBPの平均は (130+150+118+142+125)/5 = 133.0 です。

問題 3

describe() で概要をつかもう

下記の df(5人の年齢・BMI)に対して describe() を実行し、サマリ統計を表示してください。

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

df = pd.DataFrame({
    "年齢": [45, 62, 33, 55, 48],
    "BMI":  [22.5, 28.1, 24.0, 26.2, 23.8],
})

# describe() でサマリ統計を表示してください
print(df.describe())

df.describe() だけで、年齢・BMIそれぞれの件数・平均・標準偏差・最小〜最大・四分位数が一覧表示されます。データを受け取ったらまず実行する、定番の確認手段です。

6. まとめ

このレッスンのポイント

  • pandasは表形式データを扱うライブラリ。中心となるのが DataFrame
  • import pandas as pd で読み込み、pd.DataFrame(辞書) で表を作る
  • 一番左の番号が index(行ラベル)、上の見出しが columns(列名)
  • df["列名"] で列(Series)を取り出し、.mean()/.max() で一発集計
  • df.describe() でデータの概要を一目で把握できる

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

free_practice.py
出力

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