クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

JupyterLab の基本

レッスン全文をここで読めます。無料アカウントを作成すると、実際のラボで実践できます。

コンテナラボ読了目安 13分コマンド7個

あしたは混むだろうか

レンタサイクルのお店は、毎朝何台の自転車を外に出すかを決めなければなりません。少なすぎるとお客さんは歩いて帰ってしまい、多すぎると自転車が雨にぬれたままになります。1年分の記録は、読み方さえわかれば、勘よりもよい答えをくれます。

このレッスンが終わると

メモ

pandas を使って、データの表を読み込み、まとめることができる。

キーワード

  • データセット:ひとつのことについての記録の集まり。
  • CSV ファイル:1行に1件、値をカンマで区切って文字で保存した表。
  • DataFrame:pandas の表。列に名前がある。
  • 平均:合計を個数で割ったもの。
  • ノートブック:コードと結果と文章を並べ、セルごとに実行するページ。
  • モデル:データから導いた、値を予測するきまり。

はじめに:もう知っていること

メモ

頭の中で答えてください。1. 表の1行には何が入っていますか。2. 2、4、6 の平均はどう求めますか。3. Python の print は何をしますか。この3つはどれもこのレッスンで使います。答え: 1件の記録。足して3で割るので4。値を画面に表示する。

始める前に

メモ

レッスンの上のバーにある ラボを開始 を押し、動いていると表示されるまで待ちます。コンテナはひとつ、jupyter だけで、ターミナルからは docker exec jupyter でその中の Python を使います。これはコンテナの中でコマンドをひとつ実行する命令です。JupyterLab のリンクを押すと、ポート 8888 の画面が開きます。下の 実行 ボタンは、それぞれのコマンドをラボのターミナルに、同じセッションの中で順番に入力します。様子を見たいときや自分で入力したいときは、バーの ターミナルを開く(新しいタブ) を押します。

データの仕事は、データとコードの入ったフォルダーから

ls は作業フォルダーの中身を一覧にします。データの hires.csv(貸し出しの記録)、ノートブックの start.ipynb、そして steps フォルダーがあります。cat は最初のスクリプトを表示します。Python 4行だけで、pandas を読み込み、ファイルを読み、大きさと最初の数行を表示します。

コマンド
docker exec jupyter ls

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

コマンド
docker exec jupyter cat steps/load.py

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

pandas は CSV ファイルを DataFrame に読み込む

pd.read_csv はファイル全体を hires という DataFrame に読み込みます。答えは (365, 7) で始まります。1日1行で365行、列は7つです。そのあとに最初の5行が続きます。1行目は2025年1月1日、くもりの水曜日で気温は0.9度、貸し出しは137台です。

コマンド
docker exec jupyter python3 steps/load.py

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

要約は列全体を表す

describe は1つの列を8つの数でまとめます。hires 列の平均は1日270.3台、いちばん少ない日は41台、いちばん多い日は487台です。2つ目のスクリプトは groupby で天気ごとに行を分け、グループごとの平均を出します。sunny(晴れ)312.2、cloudy(くもり)267.0、rainy(雨)227.6 です。

コマンド
docker exec jupyter python3 steps/summary.py

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

コマンド
docker exec jupyter python3 steps/weather.py

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

確認

ヒント

groupby はどの列で行を分けましたか。また、貸し出しがいちばん多かったのはどの天気ですか。答え: weather 列。晴れの日で、平均は312.2台。

図にすると、表では見えない傾向が見える

Matplotlib はグラフを描く道具です。このスクリプトは1日を1つの点にして、横に気温、縦に貸し出し台数をとった図を描き、hires.png として保存します。JupyterLab のファイル一覧から開いてみましょう。点は左下から右上へ上がっていきます。暖かい日ほど混むということです。

コマンド
docker exec jupyter python3 steps/picture.py

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

モデルは傾向をきまりに変える

scikit-learn で 線形回帰 を当てはめます。気温と雨の量から貸し出し台数を出す、直線のきまりです。答えによると、気温が1度上がると約11.2台増え、雨が1ミリ増えると約8.2台減ります。決定係数(R²)は0.776 なので、このきまりで日ごとの変化のおよそ4分の3が説明できます。

コマンド
docker exec jupyter python3 steps/model.py

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

よくある思い込み

注意

よく当てはまるモデルは、変化の原因を示していると思われがちです。実際には、このデータの中で値がいっしょに動くことを示しているだけです。暖かい日は混みますが、暖かい日は雨が少なく、夏は週末と重なることも多いのです。ほかに証拠がない限り、「原因」ではなく「関係がある」と言いましょう。

同じことをノートブックで

バーから JupyterLab を開き、start.ipynb をダブルクリックします。5つのスクリプトがしたことを、セルごとに行います。セルをクリックして Shift と Enter を押すと実行されます。答えはセルの下に、グラフはページの中に出ます。最後のセルは、あなた自身の問いを書く場所です。

最後の確認

ヒント

前を見ないで答えてください。1. CSV ファイルを読む pandas の関数は何ですか。2. hires.csv は何行で、なぜその数ですか。3. 行をグループに分けるメソッドは何ですか。4. よく当てはまるモデルは、変化の原因を証明しますか。答え: pd.read_csv。365行で、2025年の1日ごとに1行。groupby。いいえ、値がいっしょに動くことを示すだけ。

先生へ

ヒント

このレッスンは、ラボで進めるレッスンの小さな例です。手順と実行ボタンがレッスンで、ラボは生徒ひとりひとりのコピーです。ラボはサービスがひとつで、pandas、NumPy、Matplotlib、scikit-learn の入った JupyterLab です。自動採点はありません。生徒は hires.csv を使った自分のノートブックを JupyterLab からダウンロードして、わかったことの一文といっしょに提出します。学習のポイント:1. pandas は CSV ファイルを DataFrame に読み込む。2. describe と groupby は列をまとめる。3. グラフとモデルは傾向を示す。よくある思い込み:よく当てはまることを原因と取り違える。用意するもの:ラボとブラウザー。ヒント:実行を押す前に、それぞれの数を予想させてください。データは決まった乱数の種から作ったもので、どのコピーでも同じ数になります。ご自分のモジュールにコピーして変更するか、レッスンビルダーのラボメニューから一から作ってください。

このラボとソースについて: JupyterLab データサイエンスラボ:pandas、Matplotlib、scikit-learn をブラウザーで

授業で教えていますか?これらのレッスンを生徒に割り当て、採点と生徒ごとのラボを使えます。