行数: 244
Python でデータ分析記事を書く実例
ここでは「データを読み込み → 要約 → グラフ」までを、Quarto のコード実行だけで完結させる例を示します。画像を一切アップロードしていません。
1. データの読み込み
GitHub の公開データセットを直接読み込みます(#| echo: false でコードを非表示にしています)。
2. 要約統計量
データの概要をそのまま表示します。
df.describe()| total_bill | tip | size | |
|---|---|---|---|
| count | 244.000000 | 244.000000 | 244.000000 |
| mean | 19.785943 | 2.998279 | 2.569672 |
| std | 8.902412 | 1.383638 | 0.951100 |
| min | 3.070000 | 1.000000 | 1.000000 |
| 25% | 13.347500 | 2.000000 | 2.000000 |
| 50% | 17.795000 | 2.900000 | 2.000000 |
| 75% | 24.127500 | 3.562500 | 3.000000 |
| max | 50.810000 | 10.000000 | 6.000000 |
3. 可視化
グラフも実行結果として自動埋め込みされます。
import seaborn as sns
sns.histplot(df["tip"], kde=True)
4. 条件ごとの集計
df.groupby("day")["tip"].mean().round(2)day
Fri 2.73
Sat 2.99
Sun 3.26
Thur 2.77
Name: tip, dtype: float64
何が起きているのか
上のコードは この記事がビルドされるときに実行され、表やグラフが HTML に埋め込まれます。
- 元データが更新されれば、記事を再ビルドするだけで結果も更新
- 「コード」と「結果」が常に一致するため、誤ったスクリーンショット貼り間違いが起きない
- 読者に「コードと結果の両方」を見せられるので、再現性も高い
コードを載せたくない部分の扱い
「実行はするけどコードは表示しない」部分は #| echo: false、逆に「コードは見せるが実行しない」部分は #| eval: false と使い分けます。
| パターン | コード表示 | 実行 |
|---|---|---|
| デフォルト | する | する |
#| echo: false |
しない | する |
#| eval: false |
する | しない |
#| echo: false + #| eval: false |
しない | しない |
まとめ
- 読み込み → 集計 → 可視化まで、コードブロックだけで完結
- 結果は常に最新で、画像アップロード不要
#| echo/#| evalを組み合わせて「見せ方」を調整
Issue にこのままコードを書けば、この CMS でも同じ動きをします。