Site cover image

Site icon imageExcelおさるくんのastro-notion-blog

VBA / Python / Notion / AIによる業務効率化とデータサイエンスに関する情報を発信しています!

Post title icon【001 全項目を指定行数抽出する】 Python in Excelで始めるデータサイエンス100本ノック!

Featured image of the post

データサイエンス100本ノック関連記事リスト

1️⃣ はじめに

  • 今回から新シリーズとして、データサイエンティスト協会さんが提供されているデータサイエンス100本ノックをDockerとPython in Excelで実行する方法をご紹介していきます。
    📖
    Python in Excelとは?
    Image in a image block
    Python in Excelは、Excel上で直接Pythonのコードを実行できる話題の新機能です。
    • 2023年8月に、パブリックプレビュー版が発表されました。
    • 現在は、Microsoftの一定のバージョン以降でMicrosoft 365 insidersプログラムに参加し「Beta Channel」を選択することで利用が可能です。
    • Python in Excelでは、ExcelにPython実行環境である「Anaconda」が組み込まれています。
    • 新しい関数である「PY」関数を使って、セルにPythonプログラムを書き込むと、クラウドでPythonプログラムを実行することができます。
    • Python向けの各種ライブラリとして、Pandas Matplotlibseaborn を使えば、データの整形やグラフ化ができたり、scikit-learn を使用すれば機械学習やデータからの予測などの機能を利用できます。

2️⃣ データサイエンス100本ノックの紹介

  • SQL、Python、Rの三言語を対象に実務でよく使うと思われるデータ加工や集計について段階的に学べる内容となっております。
    Image in a image block

一般的な実行環境としては、データサイエンティスト協会さんのGitHubリポジトリからgit cloneでプログラムをコピーし、docker compose up buildコマンドでプログラムを起動し、必要な準備を行い、Dockerコンテナ上でコードを実行していきます。

慣れている方ですと、READMEの手順に従って進めることで時間もかからずに環境構築が可能かと思います。

しかしながら、Pythonを学び始めた方やGitDockerを学んだことがない方ですと、Pythonのコードを学ぶ以前に、最初の環境構築でつまづいてしまう可能性もあるかもしれません。

そこで、この連載企画では環境構築が不要で、リアルタイムにデータの確認が可能Python in Excelを使ってデータ分析を行う方法をご紹介していきたいと思います。

せっかくですので、Dockerコンテナで実行する方法と比較しながらご紹介いたします。

  • それでは早速、実行方法を確認演習問題001 全項目を指定行数抽出するにチャレンジしてみましょう!

3️⃣ Docker上で実行

  • それでは、まずはDocker上でipynbを開いてみます。

    こちらはDockerコンテナ上で立ち上げたJupyter環境をVSCodeから利用しています。

    Image in a image block

    Dockerを使った環境構築の方法はリクエストがございましたら、改めて動画にしてみたいと思います。

  • workディレクトリの配下にPython、R、SQLnotebookがそれぞれ用意されていますのでPythonnotebookを開きます。
    Image in a image block
    Image in a image block

  • はじめにコードの中で利用する各種ライブラリをインポートするために最初のセルをCtrl + Enterで実行します。
    Image in a image block

Icon in a callout block
演習問題001
  • レシート明細データ(df_receipt)から全項目の先頭10行を表示し、どのようなデータを保有しているか目視で確認せよ。
    Image in a image block
    Icon in a callout block
    データを扱う際にはまず、データの中身がどのようになっているかを確認する必要があります。

  • 先ほど実行した、一番初めのセルでCSVファイルを読み込む処理をしています。
    Image in a image block

  • 読み込んだ CSVファイルからPandasheadメソッドを使うことで、先頭のデータを表示できます。

    取得したい行数を引数に与えます。

    df_receipt.head(10)
    Image in a image block

  • Ctrl + Enterで実行します。
    Image in a image block

    先頭の10行が出力されました。

  • ちなみに、引数に何も与えないとデフォルトで5行表示されます。
    df_receipt.head()
    Image in a image block

  • また、末尾のデータを表示する場合はtailメソッドを使用します。
    df_receipt.tail()
    Image in a image block

    次はPython in Excelで確認します。

4️⃣ Python in Excelで実行

  • まずはGitHubからデータをzipでダウンロードします。
    Image in a image block

  • CodeのプルダウンメニューからDownload Zipを選択。
    Image in a image block

  • zipファイルを展開し、レシート明細のCSVデータ(receipt.csv)をExcelで開きます。
    Image in a image block
    Image in a image block

  • 数式タブからPythonの挿入を選択
    Image in a image block

  • Python in Excelを使ってDataFrameにデータを格納するにはセル範囲を選択します。
    Image in a image block

    列を指定するか、または表のセル範囲を指定します。

  • 指定した範囲をdf_receiptという変数に格納します。
    df_receipt = xl("A1:I104682", headers=True)
    df_receipt.head(10)
    Image in a image block

  • 先ほどと同様にdf_receiptに対してheadメソッドを使用します。

    引数には10と入力します。

    Image in a image block

  • Ctrl + Enterで実行します。
    Image in a image block

  • 表示がBUSYからDataFrameに変わりましたら、数式バー隣のプルダウンメニューをクリック、PythonオブジェクトからExcelの値に変更します。
    Image in a image block

  • 数値が出力されました。
    Image in a image block

全項目の先頭10行が出力されました。

以上で、データサイエンス100本ノック演習問題001 全項目を指定行数抽出するをクリアしました。

5️⃣ おわりに

  • 最後までお読みいただきありがとうございます!
  • この記事へのご質問やアドバイスがありましたら、ぜひコメントもお待ちしております。
  • またXでもVBA、Pythonに関するアウトプットをしていますので、🔽フォローいただけますと幸いです😆