他のコンポーネントと比較

Interopを使用せずにPandasでExcelファイルを読み取る代替方法 | IronXL for Python

チャクニット・ビン
チャクニット・ビン
2024年4月3日
共有:

Excelファイルは、データ分析および操作タスクにおいて広く利用されており、表形式のデータを保存および整理する便利な方法を提供します。 Pythonでは、それぞれ独自の機能と能力を備えた複数のライブラリがExcelファイルの読み取りに利用可能です。 代表的なオプションとして、PandasとIronXLがあり、どちらもPythonでExcelファイルを読み取る効率的な方法を提供しています。

この記事では、PythonでExcelファイルを読み取るためのPandasIronXLの機能とパフォーマンスを比較します。

Pandas - オープンソースライブラリ

Pandas は、Python用の強力なオープンソースのデータ分析および操作ライブラリです。 それは、異なるタイプの列を持つ可能性がある二次元のラベル付きデータ構造であるDataFrameデータ構造を紹介します。Pandasは、CSVファイル、SQLデータベース、Excelファイルなどのさまざまなソースからデータの読み書きを含む、データ操作のための広範な機能を提供します。

Pandasの主な機能のいくつかを以下に示します:

データフレーム

PandasはDataFrameデータ構造を導入します。これは基本的に、異なる型の列を持つ可能性がある2次元ラベル付きデータ構造です。スプレッドシートやSQLテーブルに似ており、表形式データに対してフィルタリング、グループ化、および集計などの操作を簡単に行うことができます。

データ操作

Pandasは、データのマージ、リシェイプ、スライス、インデックス、およびピボット等のデータ操作のための幅広い機能を提供します。 これらの操作により、ユーザーはデータを効率的にクリーンアップ、変換、および分析や可視化のために準備することができます。

時系列機能

Pandasは、時系列データの操作に対する強力なサポートを提供しており、日付/時間のインデックス作成やリサンプリングのためのツール、欠損データやタイムゾーン変換の処理を便利に行うメソッドを含んでいます。

図書館との統合

Pandasは、NumPy、Matplotlib、Scikit-learnなど、データ分析や科学計算でよく使用されるさまざまなPythonライブラリとシームレスに連携することができます。 この相互運用性により、ユーザーは単一の分析ワークフロー内で異なるライブラリの強みを活用することができます。

全体的に見て、PandasはPythonにおけるデータ操作と解析のための強力なツールであり、金融、経済学、生物学、社会科学を含む様々な分野で広く使用されています。

IronXL - Python用Excelライブラリ

IronXL は、Excelファイルを扱うために特別に設計されたPythonライブラリです。 PythonでExcelドキュメントの読み込み、書き込み、操作のための直感的なAPIを提供します。 IronXLは、Microsoft ExcelやExcel Interopなどの外部依存性を排除し、シンプルなインターフェースを提供することで、Excelファイル操作を簡素化することを目指しています。

以下は、IronXLの主な機能の一部です:

直感的なPython 3+ ExcelドキュメントAPI

IronXLは、直感的で使いやすいPython 3+ ExcelドキュメントAPIを提供しており、開発者がExcelスプレッドシートファイルの読み込み、編集、および作成をスムーズに行うことができます。

クロスプラットフォームサポート

Python 3以上のバージョン向けに設計され、Windows、Mac、Linux、およびクラウドプラットフォームと互換性があるIronXLは、デプロイメント環境における柔軟性を保証します。

Microsoft OfficeやExcel Interopは不要

開発者は、Microsoft Officeをインストールしたり、Excel Interopを使用することなく、PythonでExcelファイルを操作できるため、統合プロセスが簡素化され、依存関係が最小化されます。

互換性

Python 3.7以降の様々なオペレーティングシステムに対応しています。対応オペレーティングシステムにはMicrosoft Windows、macOS、Linux、Docker、Azure、そしてAWSが含まれます。 JetBrains PyCharm やその他のPython IDEのような人気のあるIDEと互換性があります。

多彩なワークブックの取り扱い

様々な形式のスプレッドシートを作成、読み込み、保存、およびエクスポートします。対応形式には、XLS、XLSX、XSLT、XLSM、CSV、TSV、JSON、HTML、バイナリ、およびバイト配列が含まれます。

強力なワークシート編集

メタデータの編集、権限とパスワードの設定、ワークシートの作成および削除、シートレイアウトの操作、画像の処理などが可能です。

セルレンジの高度な操作

セル範囲に対して、ソート、切り詰め、クリア、コピー、値の検索と置換、ハイパーリンクの設定、セルの結合および結合解除などのさまざまな操作を実行します。

フレキシブル・セル・スタイリング

フォント、サイズ、境界線、配置、背景パターンを含むセルのスタイルをカスタマイズし、条件付き書式を適用します。

数学関数とデータ形式

平均、合計、最小値、最大値などの数学関数を利用し、テキスト、数値、数式、日付、通貨、科学、時間、ブール値、カスタムフォーマットなどのセルデータ形式を設定します。

PyCharmを使用してPythonプロジェクトを作成する

まず最初に、Pythonをマシンにインストールする必要があります。公式のPythonウェブサイトから最新バージョンのPython 3.xをインストールしてください。 Pythonをインストールする際には、コマンドラインからアクセスできるようにPythonをシステムPATHに追加するオプションを選択してください。

両方のPandasとIronXLのExcelファイルを読み取る機能を示すために、Python用の人気の統合開発環境(IDE)であるPyCharmを使用してPythonプロジェクトを作成しましょう。

  1. PyCharmを開き、新しいPythonプロジェクトを作成してください。

    PandasによるExcel読み取りの代替手段(Interopを使用せずに) IronXL for Python: 図1 - 新しいPyCharmプロジェクトの作成

  2. 以下のようにプロジェクトを構成します:

    • プロジェクトに名前を付ける。 この場合「pythonReadExcel

    • プロジェクトの希望する場所を選択してください

    • インタープリタの種類を選択してください: Project venv

    • Pythonバージョンを選択

    PandasによるExcel読み取りの代替手段(Interopを使用せずに) IronXL for Python: 図2 - プロジェクト名、インタープリタのタイプ、Pythonバージョンの設定

  3. 「作成」をクリックして、プロジェクトを作成します。

pipを使用してPandasとIronXLをインストールする

Pandasのインストール

プロジェクトにPandasをインストールするには、以下の手順に従ってください:

  1. コマンドプロンプトまたはターミナルを開く: PyCharmでは、[表示] -> [ツールウィンドウ] -> [ターミナル] から。

    Pandas Read Excelの代替案(Interopを使用せずに) IronXL for Python: 図3 - ターミナルを開く

  2. pip経由でPandasをインストールする: Pandasはpipパッケージマネージャーを使用してインストールできます。 ターミナルで次のコマンドを実行してください。
    pip install pandas

このコマンドは、Pythonパッケージインデックス(PyPI)からPandasライブラリとその依存関係をインストールします。

PandasによるExcel読み取りの代替手段(Interopを使用せずに) IronXL for Python: 図4 - Pandasをインストールした後のコンソール出力

  1. pipを使用してOpenPyXLをインストール: OpenPyXLはExcelファイルの読み書きを支援するライブラリです。 それは、Pandasで使用される依存関係の一つです。 パンダスをインストールすると、OpenPyXLが既にインストールされていない場合は自動的にインストールされます。 万が一インストールされていない場合は、ターミナルで以下のコマンドを使用してインストールできます:
pip install openpyxl

IronXLのインストール

PythonプロジェクトにIronXLをインストールするための手順は以下の通りです。

  1. 必要条件を確認する: IronXLをインストールする前に、システムに必要な前提条件がインストールされていることを確認してください。

    .NET 6.0 SDK: IronXL は IronXL .NET ライブラリ、特に .NET 6.0 をその基盤技術として使用しています。 .NET 6.0 SDKがあなたのコンピュータにインストールされていることを確認してください。公式の.NETウェブサイトからダウンロードできます。

  2. コマンドプロンプトまたはターミナルを開く: 前と同じことを行います。

  3. pip で IronXL をインストールする: IronXL は pip パッケージマネージャーを使用してインストールできます。 次のコマンドを実行します:
pip install IronXL

このコマンドは、Pythonパッケージインデックス(PyPI)からIronXLライブラリとその依存関係を収集、ダウンロード、およびインストールします。

PandasがExcelを読む代替方法(Interopを使用せずに) IronXL for Python: 図5 - IronXLのインストール時のコンソール出力

PandasとIronXLを使用したExcelファイルの読み取り

すべての設定が完了したので、次に両方のライブラリを使用してExcelファイルを読み取る方法に進みます。 これから読み取るデモExcelファイルには、ヘッダ行がName、Marks、Resとなっており、以下の値が含まれています。

PandasがExcelを読む代替方法(Interopを使用せずに) IronXL for Python: 図6 - サンプルExcelシート

Pandasを使用する

ステップ 1

pandasライブラリをインポートし、read_excel()関数を使用してExcelファイルから列データを読み込みます。

import pandas as pd
# Read the Excel file
df = pd.read_excel("file.xlsx")
PYTHON

Pandasのread_excel()関数を使用する際、必要に応じて表示のためのいくつかのオプションを指定できます。

ヘッダー: Excelファイルで列名として使用する行を指定します。 ヘッダー行がないことを示すためにNoneに設定するか、行番号を示す整数を指定することができます。 スキップした場合、ヘッダーはデフォルトでtrueに設定され、最初の行の位置がヘッダー行のラベルとして表示されます。

index_col: DataFrameのインデックスとして使用する列または複数の列を指定します。 1つの列名または列インデックスを渡すことができます。 または、列名や列インデックスのリストを渡して、MultiIndexを作成することもできます。

sheet_name: Excelファイルから読み取るシートを指定します。シート名は文字列として、またはゼロインデックスのシート位置を示す整数として指定することができます。

usecols: Excelファイルから読み取る列を指定します。単一の列名または列インデックスを渡すことができます。 特定の列を読み取るために、列名や列インデックスのリストを渡すこともできます。

dtype: 列のデータ型を指定します。 列名や列インデックスをキーにし、目的とするデータ型を値とする辞書を渡すことができます。

コンバーター: カスタムパースのために列に適用する関数を指定します。 キーが列名または列インデックスで、値が関数である辞書を渡すことができます。

na_values: NaN(数値でない値)として認識する追加の文字列を指定します。 文字列のリストを渡してNaNとして扱うことができます。

parse_dates: 日付として解析する列を指定します。 単一の列名または列インデックスのいずれかを渡すことができます。 または、日付として解析する列名またはインデックスのリストを渡すこともできます。

date_parser: 日付を解析するために使用する関数を指定します。 文字列を受け取り、datetimeオブジェクトを返す関数を渡すことができます。

skiprows: Excelファイルの先頭でスキップする行数を指定します。

これらのオプションは、Pandasを使ってExcelファイルを読み込む際の柔軟性を提供し、特定の要件に応じて読み込みプロセスをカスタマイズすることができます。

ステップ 2

データフレームの内容を表示する。

print(df)
PYTHON

以下は、上記のコードの出力結果です:

PandasがExcelを読む代替方法(Interopを使用せずに) IronXL for Python: 図7 - Pandasコードを実行した出力

IronXLの使用

ステップ 1: IronXLライブラリをインポートし、WorkBook.Load()メソッドを使用してExcelファイルを読み込みます。Loadメソッドのパラメータには、有効なファイルURL、ローカルファイルパスオブジェクト、またはスクリプトと同じディレクトリ内にある場合はファイル名を渡すことができます。

from ironxl import WorkBook
# Load the Excel file like object
workbook = WorkBook.Load("file.xlsx")
PYTHON

ステップ 2: IronXL を使用すると、複数のシートをリクエストしたり、列ラベルを印刷することもできます。 ワークシートおよびセルにアクセスして、保存されている列のデータを読み取ります。 セルは数値列や文字列など、任意のデータ型であることができます。 セル値は、IntValueプロパティを使用して文字列列を数値値に解析することで、intに変換できますし、その逆も可能です。

# Access the first worksheet
# Loads the first sheet from list of int default worksheets
worksheet = workbook.DefaultWorkSheet
# Select a cell and return the converted value
cell_value = worksheet ["A2"].IntValue
print(cell_value)
# Read from the entire worksheet elegantly.
for cell in worksheet:
    print("Cell {} has value '{}'".format(cell.AddressString, cell.Text))
PYTHON

以下のコードの出力は、IronXLの汎用性を適切な表示形式で示しています:

PandasがExcelを読む代替方法(Interopを使用せずに) IronXL for Python: 図 8 - IronXL コードからのコンソール出力

Excelファイルの操作に関する詳細情報は、このコード例ページをご覧ください。

結論

結論として、PandasとIronXLの両方がPythonでExcelファイルを読み取るための効率的な方法を提供しています。 しかし、IronXLはPandasに比べて、特に使いやすさ、パフォーマンス、および専門的なExcel処理機能においていくつかの利点を提供します。 IronXLの直感的なAPIと包括的な機能は、広範なExcel操作タスクを必要とするプロジェクトにとって優れた選択肢となります。

さらに、IronXLはMicrosoft ExcelやExcel Interopのような外部依存関係を排除し、開発プロセスを簡素化し、異なるプラットフォーム間での移植性を向上させます。 したがって、Excelファイル操作に関して強力かつ効率的なソリューションを求めるPython開発者にとって、IronXLがPandasに比べて優れた機能と強化された機能を提供するため、最良の選択肢として浮上します。 IronXLに関する詳細情報については、このドキュメントページをご覧ください。

IronXL は、Python プロジェクトでその機能性と実現可能性をテストするための無料トライアルを提供します。 このトライアルにより、開発者はIronXLが提供する機能と能力のすべてを事前の金銭的なコミットメントなしで探索することができます。 データのインポート/エクスポートタスク、レポート生成、もしくはデータ分析のためにIronXLを検討されている場合、無料トライアルを利用することで、そのパフォーマンスと特定の要件に対する適合性を評価する機会を得ることができます。

ライセンスオプションに関する詳細情報と無料試用版のダウンロードについては、IronXLウェブサイトのライセンスページをご覧ください。 こちらでは、商業使用およびサポートのオプションを含む、ライセンス条件に関する詳細情報をご覧いただけます。 IronXLを始め、その利点を実際に体験するには、ライブラリをこちらからダウンロードしてください。

チャクニット・ビン
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeで作業しています。彼はC#と.NETに深い専門知識を持ち、ソフトウェアの改善と顧客サポートを支援しています。ユーザーとの対話から得た彼の洞察は、より良い製品、文書、および全体的な体験に貢献しています。
< 以前
OpenpyXL Python と IronXL Python の比較