ポイント: Jupyter Notebooksは、データ分析のための重要なツールとして機能し、コーディングと視覚化のためのインタラクティブな環境を提供します。このガイドでは、PipenvとAnacondaを介したインストール方法を詳述し、データ管理における効果的なノートブック、カーネル、およびセルなどのコアコンポーネントを説明します。
- 主にPythonをサポートする複数のプログラミング言語をサポートします。
- コード、出力、およびリッチメディアを単一のドキュメント形式に統合します。
データ分析の重要性はすべての業界で着実に高まっています。適切なデータ分析と視覚化ツールを持つことは、これまで以上に重要になっています。Jupyter Notebooksは、データ分析を開発および管理するための主要なオープンソースツールの1つです。
Jupyterは2014年にiPythonプロジェクトの分派として始まり、完全なインタラクティブなデータサイエンスプラットフォームに進化しました。非営利のProject Jupyter組織によって管理されているJupyterは、最も包括的なデータサイエンスプラットフォームを提供することを目指しています。
この記事では、ローカルJupyter環境のセットアップと構成方法を示します。このチュートリアルをデータ分析の作業を始めるための完璧な出発点として使用できます。
Jupyter Notebookとは何ですか?
Jupyter Notebookは、インタラクティブな計算環境を提供するオープンソースのWebアプリケーションです。コードや出力を1つのファイルにまとめた文書(ノートブック)を生成します。次の内容を含む単一の文書を提供します:
- 視覚化
- 数学的方程式
- 統計モデリング
- ナarrativeテキスト
- その他のリッチメディア
この単一文書アプローチにより、ユーザーは結果を開発、可視化し、作業をより理解しやすく、再現可能で、共有可能な情報、チャート、および数式を追加できます。
Jupyterノートブックは、主要な焦点をPythonに置いて、40以上のプログラミング言語をサポートしています。無料のオープンソースツールであるため、誰でも自由にデータサイエンスプロジェクトに使用できます。Jupyterノートブックには2つのバリアントがあります:
- Jupyter Classic Notebook、上記のすべての機能を備えています。
- JupyterLab、データサイエンス、機械学習、および科学計算からの幅広いワークフローをサポートするために設計された、はるかに拡張可能でモジュール化された次世代ノートブックインターフェースです。
今日、JupyterLabは、どのJupyterプロジェクトのデフォルトのノートブックです。
(これらのPythonツールを使用して始めましょう。)
Jupyter Notebook(JupyterLab)のインストール
Jupyterノートブックをインストールして使用する方法はいくつかあり、conda、mamba、pip、pipenvを介してインストールするか、Dockerコンテナとして使用することができます。
このセクションでは、ローカル環境にJupyterノートブックをインストールする2つの方法について説明します。(すべてのインストール方法については、Jupyter Notebookの公式ドキュメントを参照してください。)JupyterLabのセットアップのために、オペレーティングシステム環境としてWindowsを使用します。
Pipenvを介してインストール
Pipenvを使用すると、Pythonプロジェクトの適切な依存関係管理を備えた決定論的再現可能な仮想環境を作成できます。Jupyterはpipパッケージとして提供されるため、この仮想環境に簡単にインストールできます。
まず、仮想環境として機能するフォルダーを作成します。この例では、「jupyter_notebook」というフォルダーを作成し、Pipenvを使用して環境を設定します。
次のコマンドを実行して、このフォルダーを初期化し、Pythonバージョンを3.8に設定します。ただし、このサポートされているPythonバージョンを使用できます。
| pipenv --python 3.8 |
次に、pipを介してJupyterパッケージをインストールするために、次のコマンドを実行します:
| pipenv install jupyterlab |
最後に、実行コマンドを使用してJupyterLabを実行できます。
| pipenv run jupyter lab |
JupyterLabを実行した後、提供されたURLを介してJupyterLabのインストールにアクセスできます(https://localhost:8888)。
この方法では、Pipenvメソッドが競合なしに作業するための孤立したJupyterLab環境を提供します:
- 他のPythonプロジェクト
- 設定
- グローバルにインストールされたパッケージ
Anacondaデータサイエンスツールキットを介してインストール
Anacondaは、デプロイメントとパッケージ管理を簡素化することを目的としたPythonとRプログラミング言語のオープンソース配布です。独自のものが含まれています:
- パッケージ管理システム(conda)
- 仮想環境機能
- データサイエンスプロジェクト向けのソフトウェアパッケージ
Anaconda個人版は、Anacondaインストールパッケージをインストールするだけで、ローカルデータサイエンス環境を迅速にセットアップできるようにします。
次に、Anacondaを介してJupyter Notebookをインストールしましょう。まず、Anacondaのウェブサイトに移動し、オペレーティングシステム環境に適したIndividual Editionインストールパッケージをダウンロードします。
次に、インストーラ(.exeパッケージ)を使用してローカルマシンにソフトウェアをインストールします。
その後、インストールが完了したら、新たにインストールされたAnaconda Navigatorというアプリケーションを開きます。これは、conda環境のアプリケーションとパッケージをインストールするために使用されるGUIです。Anaconda Navigatorのアプリケーションセクションには、Jupyter NotebookとJupyterLabの両方が表示されることに気付くでしょう。
次に、好みのノートブックタイプを選択してインストールします。その後、「起動」ボタンをクリックしてJupyter Notebookを開始します。これにより、ノートブックが開いたブラウザウィンドウが開きます。
デフォルトでは、Jupyterはスタートアップ場所内のすべてのファイルとフォルダにアクセスできます。これはAnacondaのインストール場所であり、Pipenvの仮想環境のフォルダ位置です。
ノートブックの作成
インストールプロセスが完了したので、ノートブックの作成に進むことができます。JupyterLabのWebインターフェースのホームページでノートブックボタンをクリックするか、ファイル -> 新規 -> ノートブックに移動して新しいノートブックを作成します。
これにより、untitled.ipynbという名前の新しい無題ノートブックが開き、プロジェクトのコーディングを開始できます。
Jupyterノートブックのコンポーネント
このセクションでは、Jupyter環境と対話するために不可欠なJupyterノートブックの主なコンポーネントをカバーします。
ipynbファイル
.ipynbファイルは、単一のノートブックを定義するために使用される拡張子です。このファイルには、JSON形式でノートブックのすべてのデータが含まれています。さらに、すべてのセルの内容、変換された文字列としての画像添付、およびノートブックに関連するメタデータが含まれています。
test.ipynbという名前のシンプルなノートブックを作成し、以下に示すように簡単なprint文を追加しましょう。
テスト.ipynbファイルをJSONファイルとして開くと、ノートブックに関連するすべての情報がどのように保存されているかを見ることができます。
ノートブックカーネル
カーネルはノートブックの脳として機能します。セル内のコードはすべてカーネルで実行され、出力はノートブックに返されます。カーネルは全体の文書(ノートブック)を単一のエンティティとして見て、セル間の状態を維持します。
次の例では、セルで変数(data_x)を定義し、別のセルで同じ変数にアクセスして単純な加算計算を行います。
すべての変数をクリアする必要がある場合は、カーネルを再起動するか、「すべての出力を再起動してクリア」または「すべてのセルを実行」などの他のオプションを使用できます。さらに、計算の問題でカーネルが固まっている場合は、カーネルを停止するための中断オプションもあります。
カーネルは、Java、Scala、R、Luaなどのノートブックでサポートされるプログラミング言語を決定します。さらに、ユーザーはサポートされているカーネルをインストールし、それを使用してノートブックを作成できます。SoSカーネルのような一部のカーネルは、単一のノートブックで複数の言語をサポートします。
ノートブック内のセル
セルはノートブックのビルディングブロックです。ノートブック内で行うすべてのことは、特定のセルブロック内で行います。ノートブックには2種類のセルがあります:
- コードセル。これらのセルには、カーネルで実行されるコードが含まれています。ノートブックが実行されると、結果の出力はコードセルの下に表示されます(セルの外)。
- Markdownセル。これらのセルには、Markdownを使用したテキストコンテンツが含まれています。実行時に、結果はマークダウンセルの場所に生成されます。
セルの種類:
実行時のセル:
実行時のセル:
すべてのタイプのセルには、編集モードとコマンドモードと呼ばれる2つのモードがあります:
- セルをクリックして編集を開始すると、編集モードを示す青いボーダーに外観が変わります。
- セルから出ると、コマンドモードを示す灰色のボックスに変わります。
セルの編集モード:
セルのコマンドモード:
セルのコマンドモード:
データ分析を始める
Jupyterノートブックをインストールし、そのコアコンポーネントを理解したので、ノートブックを使用してデータ分析と視覚化を行いましょう。
最初に、新しいノートブック「race_data」を作成します。この分析には、Formula 1 World Championship (1950-2021)データセットをKaggleから使用します。
この分析の目的は、F1で最も多くの勝利を収めたドライバーを特定することです。始める前に、Python環境に必要なライブラリがインストールされていることを確認してください。"pipenv install"コマンドを使用してPipenvをインストールし、condaを使用してanacondaをインストールできます。
ステップ1
Kaggleデータセット(.csvファイル)からPandasデータフレームにデータをインポートします。
| import numpy as np import pandas as pd# データをインポート results_dataframe = pd.read_csv('G:\data\results.csv') circuits_dataframe = pd.read_csv('G:\data\circuits.csv') drivers_dataframe = pd.read_csv('G:\data\drivers.csv') races_dataframe = pd.read_csv('G:\data\races.csv') constructor_dataframe = pd.read_csv('G:\data\constructors.csv') |
ステップ2
いくつかのデータフレームを印刷してインポートを確認します。
| # 結果データフレームを印刷 results_dataframe.head()# ドライバーデータフレームを印刷 drivers_dataframe.head() |
ステップ3
すべてのデータフレームを結合して、必要なすべてのデータを含む単一のプライマリデータフレームを作成します。
|
# データフレームを結合 driver_result_dataframe = pd.merge(results_dataframe,drivers_dataframe,on='driverId') race_result_dataframe = pd.merge(driver_result_dataframe,races_dataframe,on='raceId') complete_race_data_dataframe = pd.merge(race_result_dataframe,constructor_dataframe,on='constructorId') complete_race_data_dataframe.head() |
ステップ4
データフレームをクリーンアップします。データフレームからすべての不要な列を削除します。
| complete_race_data_dataframe = complete_race_data_dataframe.drop (columns=['url_x','url_y','name_y','nationality_y','url','time_y']) complete_race_data_dataframe.head() |
|---|
ステップ5
各ドライバーの総勝利数を計算します。以下のコードブロックでは:
- レースデータをフィルタリングして、1位のフィニッシュのみを含むようにし、「position_mod」という新しい整数列を作成します。
- 「driverRef」と「nationality_x」列でデータをグループ化し、position_modの合計を取得します。
- データを降順に並べ替え、最初の10行を取得します。
| # 結果をフィルタリングして計算 total_wins = complete_race_data_dataframe[(complete_race_data_dataframe['position']== '1')] total_wins['position_mod'] = total_wins['position'].astype(int) total_wins = total_wins.groupby(['driverRef','nationality_x'])['position_mod'].sum().reset_index() total_wins = total_wins.sort_values(by=['position_mod'], ascending=False) total_wins = total_wins.head(10) |
ステップ6
ステップ5で取得した新しいデータセットを使用して、plotlyライブラリを利用して棒グラフを作成します。
| import plotly.graph_objects as go from plotly.offline import iplot import plotly.io as pio pio.renderers.default = "iframe"# 棒グラフを作成 chart = go.Figure(data=[go.Bar( x= total_wins['driverRef'], y= total_wins['position_mod'], hovertext = total_wins['nationality_x'] )])chart.update_layout(title={ 'text': "勝利数の多いトップ10ドライバー", 'y':0.9, 'x':0.5, 'xanchor': 'center', 'yanchor': 'top'}, yaxis=dict( title='勝利数', titlefont_size=16, tickfont_size=14), xaxis=dict( title='ドライバー', titlefont_size=16, tickfont_size=14), template = "plotly_dark" ) iplot(chart) |
作成したチャート
Jupyterでデータ分析を始める
Jupyter Notebooksはデータ分析分野での先駆けとなる理想的な場所です。Jupyterは、複数のインストール方法を使用して、機能豊富で堅牢かつユーザーフレンドリーな環境を提供します。ユーザーは、プラットフォームに関係なく、どの環境でもJupyterを利用できます。
関連する読み物
これらの投稿は私自身のものであり、BMCの立場、戦略、または意見を必ずしも表すものではありません。