現在の見出し:1.1節:Excel読み込みシステムの構築
見出し一覧
- 1.1節:Excel読み込みシステムの構築
- - pd.read_excel()による売上データ読み込み機能の実装
- - os.path.exists()によるファイルが存在するか確認する機能の追加
【PR】『Python』を学べる企業・個人向けのプログラミングコース
pd.read_excel()による売上データ読み込み機能の実装
第1章1.1節では、「pd.read_excel()」と「os.path.exists()」を使い、売上データ読み込み機能を実装していきます。これから売上データ集計ツールを開発していくにあたり、pyファイルを作成して「コマンドラインでの実行」をその都度行ってみてください。
まず、売上データ分析ツールの基盤となる「Excelファイル読み込み機能」を構築します。pd.read_excel()関数関数は一定の処理をまとめたプログラムの塊です。は、Excel形式のファイル(.xlsx/.xls)を読み込んで、pandasのDataFrameオブジェクトオブジェクトはプログラムの要素の一つで、データとその操作手段を一つにまとめたものです。に変換する専用関数です。内部でopenpyxlエンジンを使用するため、複雑なExcel構造も正確に解析して表形式データとして処理できます。
| 機能 | 説明 | メリット | 
|---|---|---|
| pd.read_excel() | ExcelファイルをDataFrameに変換 | 複雑なExcel構造も自動解析 | 
| DataFrame | 行と列の2次元データ構造データ構造はプログラミングでデータを効率的に格納・管理するための仕組みで、適切な選択により操作の高速化が可能です。 | 効率的なデータ操作が可能 | 
| データ確認 | 読み込み結果の基本情報表示 | 処理成功の即座な確認 | 
読み込み処理では、データの行数・列数・構造を表示して正常性を確認します。len()関数でDataFrameのサイズを取得し、head()メソッドメソッドは特定の処理をまとめたプログラムの塊です。で最初の5行を表示することによって、期待したデータが正しく読み込まれているかを視覚的に判断できます。また、f文字列文字列は文字の並びを表現するデータ型で、テキストデータを扱うための基本的な構造として広く使用されています。を使用した出力により、ユーザーは処理状況を直感的に把握できるようになります。
プログラム実行前に必要な準備について
pd.read_excel()を使用するには、openpyxlライブラリライブラリは再利用可能なソフトウェアの部品です。のインストールが必須です。コマンドプロンプトまたはターミナルで「pip install openpyxl」を実行し、ライブラリをインストールしてください。
また、読み込み対象のExcelファイル(sample.xlsx)は、実行するPythonファイルと同じディレクトリに配置する必要があります。
# ディレクトリ構成
project_folder/            ← プロジェクトのフォルダ
│
├─ sample.xlsx             ← 読み込むExcelファイル
├─ script.py               ← 作成したPythonファイル
└─ (その他のファイル)
ファイル配置とライブラリインストールが完了したら、作成したPythonファイルをコマンドラインで実行できます。正常に動作する場合は、データの行数・列数・先頭5行が表示され、「読み込み成功!」のメッセージが出力されます。エラーが発生した場合は、ファイルパスファイルパスはコンピュータ上でファイルを特定するための指示書のようなものです。の確認とopenpyxlのインストール状況を再度チェックしてください。
使用するサンプル売上データをダウンロード
以下のボタンから、サンプルの売上データをExcel形式(.xlsx)でダウンロードできます。
サンプルコード・実行結果
# コード
import pandas as pd
import os
def load_sales_data(filepath):
    """売上データの読み込み"""
    df = pd.read_excel(filepath)
    print(f"データ読み込み完了: {len(df)}行, {len(df.columns)}列")
    print("データ構造:")
    print(df.head())
    return df
# メイン処理
def main():
    filepath = "sample.xlsx"
    df = load_sales_data(filepath)
    
    if df is not None:
        print("読み込み成功!")
    else:
        print("読み込み失敗")
if __name__ == "__main__":
    main()
# 実行結果
データ読み込み完了: 100行, 4列
データ構造:
    Product    Area        Date  Price
0  ProductA  Tokyo  2024-01-15   1000
1  ProductB  Osaka  2024-01-16   1500
2  ProductC  Tokyo  2024-01-17   2000
3  ProductA  Nagoya 2024-01-18   1200
4  ProductB  Tokyo  2024-01-19   1800
読み込み成功!
| 行数 | 種別 | コード | 解説 | 
|---|---|---|---|
| 2行目 | 新規 | import pandas as pd | pandasライブラリをpdという短縮名でインポートします。Excelファイル読み込みとデータ操作の中核となるライブラリです。 | 
| 3行目 | 新規 | import os | osモジュールモジュールはプログラミングで機能や処理をまとめた再利用可能な単位で、コードの管理や保守を容易にします。をインポートしてファイル操作機能を利用可能にします。ファイル存在確認などのシステム関連処理で使用します。 | 
| 5行目 | 新規 | def load_sales_data(filepath): | 売上データ読み込み用の関数を定義します。filepathパラメータでExcelファイルのパスパスはファイルやディレクトリの場所を示すために使われる言葉です。を受け取ります。 | 
| 7行目 | 新規 |     df = pd.read_excel(filepath) | 指定されたExcelファイルを読み込んでDataFrameオブジェクトに変換します。openpyxlエンジンが自動的に使用されます。 | 
| 8行目 | 新規 |     print(f"データ読み込み完了: {len(df)}行, {len(df.columns)}列") | 読み込んだデータの行数と列数を表示します。len()関数でDataFrameのサイズを取得して確認できます。 | 
| 9行目 | 新規 |     print("データ構造:") | データ表示の見出しを出力します。ユーザーが次に表示される内容を理解しやすくするための説明文です。 | 
| 10行目 | 新規 |     print(df.head()) | DataFrameの最初の5行を表示してデータ構造を確認します。head()メソッドはデータの概要把握に適しています。 | 
| 11行目 | 新規 |     return df | 読み込んだDataFrameを呼び出し元に返します。後続処理でデータを使用できるようにするための重要な処理です。 | 
| 14行目 | 新規 | def main(): | メイン処理関数を定義します。プログラムの実行起点となる関数で、全体の処理フローを管理します。 | 
| 15行目 | 新規 |     filepath = "sample.xlsx" | 読み込み対象のExcelファイルパスを設定します。実行ファイルと同じディレクトリに配置されたsample.xlsxを指定します。 | 
| 16行目 | 新規 |     df = load_sales_data(filepath) | 定義した関数を呼び出して売上データを読み込みます。戻り値をdf変数変数はデータを一時的に記憶しておく場所です。に格納して後続処理で使用します。 | 
| 18行目 | 新規 |     if df is not None: | DataFrameが正常に読み込まれたかを確認します。None以外の値が返された場合に成功処理を実行します。 | 
| 19行目 | 新規 |         print("読み込み成功!") | データ読み込みが成功した場合のメッセージを表示します。ユーザーに処理完了を明確に伝える確認出力です。 | 
| 20行目 | 新規 |     else: | DataFrameがNoneの場合(読み込み失敗時)の処理分岐です。エラー状況に対応するためのelse節です。 | 
| 21行目 | 新規 |         print("読み込み失敗") | データ読み込みが失敗した場合のエラーメッセージを表示します。問題発生をユーザーに通知する重要な出力です。 | 
| 23行目 | 新規 | if __name__ == "__main__": | スクリプトが直接実行された場合の条件分岐条件分岐はプログラム内で指定した条件によって処理の分岐を行う制御構造です。です。モジュールとしてインポートされた場合は実行されません。 | 
| 24行目 | 新規 |     main() | メイン関数を呼び出してプログラムを実行します。プログラム全体の実行起点となる重要な処理です。 | 
 
                 
                 
                         
                         
              

















