本文へスキップ
totonoe.tech

プログラミング言語を整える

中級

NumPy・pandas を整える。

= Excel の「並べ替え」「絞り込み」「集計」を pandas のコードで書く練習場

pandas が初めての方は、先に そもそも pandas とは・どんな場面で使うか をどうぞ。

4つの課題(クリックでエディタに読み込み)

PYTHON CODE Pyodide 0.28(numpy・pandas 同梱)で実行・送信ゼロ

コードを書いて「実行」を押すと、ここに print 出力・表・最後の式の値が出ます。

そもそも pandas とは

Python で表のデータを、Excel のように扱うための道具。

pandas は、Python で表形式のデータを扱うためのライブラリ(部品集)です。Wes McKinney 氏が作り始めました。中心になるのは DataFrame という、行と列でできた表のようなデータの入れ物で、CSV や Excel のデータを読み込み、並べ替え、絞り込み、集計といった操作ができます。

数値計算の土台である NumPy の上に作られていて、数値だけでなく文字や日付が混ざった表も扱えます。Excel で手作業していた集計を、コードで書いて何度でも同じ手順で再現できる点が強みです。

どこで・どんな場面で使うか

  • CSV の集計・整形

    売上データなどを読み込んで、月ごと・商品ごとに合計や平均を出します。

  • データ分析の下ごしらえ

    欠けた値の穴埋めや、不要な行の削除など、分析の前の整理に使います。

  • 機械学習の前処理

    学習に使うデータを、使える形にそろえる作業でよく登場します。

  • Excel 作業の自動化

    毎月同じ手順の集計を、コードにして一瞬で済ませます。

  • 求人・仕事での位置づけ

    データ分析やデータ関連の仕事で、Python と合わせて求められる基本の道具です。

なぜ覚えておくと得か

  • 手作業の集計を再現できる。手順がコードに残るので、データが新しくなっても同じ処理を繰り返せます。
  • 大きな表でも扱いやすい。表計算ソフトでは重くなる量のデータも、扱いやすくなります。
  • データ分析の入口になる。グラフ化や機械学習へ進むときにも、この表の扱い方がそのまま土台になります。

上の練習場で課題を選んでコードを実行し、表のデータが絞り込まれたり集計されたりする結果を確かめてみてください。

4つの課題で NumPy・pandas の骨格をつかむ。

  1. 1

    NumPy 配列 — 作る・形(shape)・要素ごとの演算

    np.array([...]) で配列を作ると、 a * 2 のように全要素へ一括で演算できます。ループを自分で書く必要がありません。

  2. 2

    DataFrame を作る — 辞書から・head・describe

    pd.DataFrame(辞書) で表を作れます。 head() で先頭数行、 describe() で数値列の統計をまとめて確認できます。

  3. 3

    絞り込みと並べ替え — boolean index・sort_values

    df[df["age"] >= 30] のように条件式を角括弧に渡すと、条件に合う行だけが残ります。 sort_values(列名) で並べ替え。

  4. 4

    集計 — groupby・agg・pivot_table

    groupby("列").agg(...) でグループごとの集計、 pivot_table(...) で2つの軸のクロス集計ができます。

NumPy と pandas の役割分担

どちらも「表・配列を扱うライブラリ」ですが、担う階層が違います。

  • NumPy — 同じ型の値が並んだ「配列」を高速に計算するための土台。行列演算・統計関数など、数値計算そのものを担当します。
  • pandas — NumPy の配列を土台に、列ごとに名前と型を持てる「表(DataFrame)」を扱うためのライブラリ。列名・行ラベル・欠損値の扱いなど、表計算に必要な機能を足しています。
  • 実際には、pandas の DataFrame の中身は列ごとに NumPy 配列として保持されています。「NumPy が計算エンジン、pandas が表としての使い勝手を足したもの」という関係です。

Excel との対応

Excel の操作を知っていれば、pandas の用語はほぼそのまま対応づけられます。

Excel pandas
シート(表全体) DataFrame
1列 Series
行番号(左端の1,2,3…) index
見出し行 columns
フィルター boolean index(df[条件])
並べ替え sort_values()
ピボットテーブル pivot_table() / groupby()

このページについて

最後の行が式で、その値が DataFrame または Series のときだけ、下の出力に表として表示します。 Excel の「値を貼り付け」と同じで、表示は先頭 50 行までです(それより多い行数は件数だけ注記します)。

💡 初回は Pyodide(Python WASM)本体に加えて、numpy・pandas 追加で約9MBの追加ダウンロードがあります(合わせて数秒〜十数秒)。2 回目以降はキャッシュから瞬時にロード。 書いたコードと実行結果は、どこにも送信されません(すべてブラウザ内で実行)。

🌐 このページを開いただけでは外部通信は発生しませんが、「実行」を押した最初の1回だけ、 Python の実行環境(Pyodide 0.28.0)と numpy・pandas パッケージを配信元の cdn.jsdelivr.net から取得します。 これはプログラムを受け取るだけの通信で、あなたが書いたコードや実行結果が送られることはありません。 ただし通信である以上、配信元にはお使いの回線の IP アドレスが見えます。 「入力は端末から出さない」という当サイトの原則に関わる点なので、隠さずに書いておきます。

このツールについて

表計算ソフトでやっていた「並べ替え」「絞り込み」「集計」を、Python のコードで書く練習場です。ブラウザの中だけで NumPy・pandas が動くので、書いて → 実行 → 表の形がどう変わるかを何度でも試せます。

ブラウザ内の pandas で「並べ替え」「絞り込み」「集計」を実際に書いて試す練習場。最後の式が DataFrame なら自動で表として表示。Excel の操作との対応表つき。

主な機能

  • 4課題(NumPy 配列/DataFrame を作る/絞り込みと並べ替え/groupby・pivot_table)
  • 最後の式が DataFrame/Series なら表として表示(先頭50行)
  • NumPy と pandas の役割分担・Excel との対応表
  • numpy・pandas は初回のみ追加ダウンロード(約9MB)・送信ゼロ

よくある質問

Q. NumPy と pandas は何が違いますか?

A. NumPy は同じ型の値が並んだ配列を高速に計算するための土台です。pandas はその上に、列ごとに名前と型を持てる表(DataFrame)を扱う機能を足したライブラリで、DataFrame の中身は列ごとに NumPy 配列として保持されています。

Q. 表は何行まで表示されますか?

A. 先頭50行までです。それより多い DataFrame や Series は、全体の行数を注記したうえで先頭50行だけを表示します。

Q. 最後の行に df とだけ書くと表が出るのはなぜですか?

A. Python の対話環境(REPL・Jupyter)で最後の式の値が自動表示される挙動を再現しているためです。print(df) と書かなくても、最後の文が DataFrame や Series の式なら表として表示します。

入力値はURLの「#」以降に入るためサーバーには送信されません。リンクを開くと同じ状態を復元します。

続けて整える

totonoe.tech を運営する株式会社Koinobori は、法人向けの研修サービス「NOBORIBA®」も運営しています。 ここで手を動かした内容を、講師から教わる形の研修です。このページの道具は無料のまま、登録もいりません。

運営サイト

私たちが運営するサイト