Excelファイルは、構造化データを管理するための最も人気のあるフォーマットの1つです。Pythonでは、pandasのDataFrameがそのデータを効率的に整理・分析するための基本的な構造です。ExcelデータはDataFrameに変換されると、データベース、API、または機械学習モデルとシームレスに結合され、より深い分析と洞察が得られます。この記事では、ExcelをpandasのDataFrameに変換する実用的な方法を、明確な例を交えて探ります。
What is a Pandas DataFrame?
DataFrame は、pandas ライブラリによって提供される 2D データ構造です。行と列を持つ Excel のスプレッドシートに似ています。各列は、文字列、整数、または浮動小数点数など、異なるデータ型を保持できます。
DataFrames は以下に最適です:
- データのインポートとクレンジング。
- 数学的操作を行う。
- データのフィルタリング、グループ化、および集約。
- Excel、CSV、またはデータベースに結果をエクスポートします。
ExcelファイルをDataFrameに変換すると、分析のために強力なpandas操作をすぐに適用できます。
ExcelをPandas DataFrameに変換するためのPythonライブラリ
Aspose.Cells for Python via .NET は、基本的なスプレッドシートの操作以上のニーズを持つ開発者にとって、最高のPython Excelライブラリ としてよく考慮されます。これにより、Microsoft Excelをインストールせずに、プログラムでExcelファイルを作成、読み取り、編集、および変換できます。
データフレームの変換において、このライブラリは素晴らしいです。なぜなら、数式、結合セル、グラフ、ピボットテーブル、条件付き書式などの高度なExcel機能を完全にサポートしているからです。これは、XLS、XLSX、XLSB、ODS、CSVおよびJSONなど、複数のフォーマットで機能します。
Aspose.Cellsを使用してExcelデータをpandasに取り込むと、高忠実度でDataFrameへのスムーズな変換が得られます。これは、Excelの構造、フォーマット、値が正確に維持されることを意味し、pandasはそのデータを効率的に分析し変換するためのツールを提供します。
Excel を Pandas DataFrame に変換する
新しいスプレッドシートを作成し、プログラムmaticallyにデータを生成し、ExcelをpandasのDataFrameに変換することができます。これにより、pandasでの即時分析の準備をしながら、ファイルの構造を完全に制御できます。
以下の手順に従って、ExcelをPandas DataFrameに変換してください。
Workbookクラスのインスタンスを作成します。- 最初のワークシートとそのセルにアクセスします。
- ワークシートのセルに値を追加します。
- Extract rows and headers.
- 抽出したデータを pandas DataFrame に変換します。
次のPythonコードの例は、Excelをpandas DataFrameに変換する方法を示しています:
import pandas as pd
from aspose.cells import Workbook
# ステップ 1: Aspose.Cells を使用して新しい Excel ワークブックを作成します
wb = Workbook()
# ステップ 2: 最初のワークシートにアクセスする
ws = wb.worksheets.get(0)
# ステップ 3: ワークシートのセルコレクションにアクセスする
c = ws.cells
# ステップ 4: ワークシートにサンプルデータを追加します
c.get("A1").value, c.get("B1").value, c.get("C1").value = "Name", "Age", "City"
c.get("A2").value, c.get("B2").value, c.get("C2").value = "Alice", 25, "New York"
c.get("A3").value, c.get("B3").value, c.get("C3").value = "Bob", 30, "San Francisco"
c.get("A4").value, c.get("B4").value, c.get("C4").value = "Charlie", 35, "Los Angeles"
# ステップ 5: 最初のデータ行からヘッダーを取得します
header_idx = c.min_data_row
columns = [cell.value for cell in c.rows[header_idx]]
# ステップ 6: 残りの行をデータとして収集する
data = [
[cell.value for cell in row]
for idx, row in enumerate(c.rows)
if row and idx != header_idx
]
# ステップ 7: 一度にデータフレームを構築する
df = pd.DataFrame(data, columns=columns)
print(df)
Output
Name Age City
0 Alice 25 New York
1 Bob 30 San Francisco
2 Charlie 35 Los Angeles
既存の Excel ファイルを Pandas DataFrame に変換する
既にExcelファイルを持っている場合は、それを読み込み、PythonでExcelをpandasのDataFrameに直接変換できます。これにより、データをpandasでより効率的に扱いながら、元のシート構造を保持できます。
以下の手順に従って、既存のExcelファイルをPandas DataFrameに読み込んで変換します。
- 既存のExcelファイルを
Workbookクラスを使用して開きます。 - 名前またはインデックスでワークシートを選択します。
- すべての行と列を読みます。
- Extract headers if available.
- 結果を pandas DataFrame に変換します。
以下のPythonコードは、既存のExcelファイルをpandas DataFrameに変換する方法を示しています:
import pandas as pd
from aspose.cells import Workbook
# ステップ 1: ファイルから Excel ワークブックをロードします
workbook = Workbook("PandasTest.xlsx")
# ステップ 2: ワークシートを選択する(インデックスまたは名前で)
worksheet = workbook.worksheets.get("Sheet1") # or workbook.worksheets[0]
# ステップ 3: ワークシートからセルのコレクションを取得します
cells = worksheet.cells
# ステップ 4: 列の数を計算する (0 ベースのインデックスの差)
col_count = cells.max_data_column - cells.min_data_column
# ステップ 5: 行データを格納するリストを作成する
output_data = []
# ステップ 6: データを持つ最初の行のインデックスを見つける
first_data_row_index = cells.min_data_row
# ステップ 7: シート内のすべての行を繰り返します
for row in cells.rows:
if row is None:
continue # Skip uninitialized rows
# 現在の行のすべてのセルの値を収集します。
row_data = [cell.value for cell in row]
output_data.append(row_data)
# ステップ 8: 列ヘッダーを準備する
columns = []
if True: # Use header row
row = cells.rows[first_data_row_index]
for cell in row:
columns.append(cell.value)
# データからヘッダー行を削除してください。
output_data = output_data[1:]
else:
# ヘッダーがない場合は、デフォルトの列名を割り当てます。
columns = [f"Unnamed: {i}" for i in range(col_count + 1)]
# ステップ 9: データを pandas DataFrame に変換する
df = pd.DataFrame(output_data, columns=columns)
# ステップ 10: データフレームを印刷する
print(df)

サンプルExcelファイルをPandas DataFrameに変換するためのものです。
Output
Product A Product B Period
0 50 160 Q1
1 100 32 Q2
2 170 50 Q3
3 300 40 Q4
ExcelをJSON経由でPandasに変換する
Excelの範囲を
JsonUtility.exportrangetojsonを使用してJSONにエクスポートし、その後Pandasにロードします。ステップバイステップガイドをご覧ください: Convert Excel to Pandas DataFrame via JSON。
ExcelをCSV経由でPandasに変換する
ExcelファイルをCSVに変換し、次にそれをPandasにロードします。ステップバイステップのガイドに従ってください: Convert Excel to Pandas DataFrame via CSV.
無料ライセンスを取得する
Aspose.Cells for Python via .NETのすべての機能を制限なく試すことができます。無料の一時ライセンスを適用してください。 license page を訪れて、無料のライセンスを取得してください。これにより、高度なExcelからDataFrameへの変換を含む、完全なAPIを評価することができます。
追加の無料リソース
ExcelファイルをPythonで扱うためのさらなる方法を探るために、これらのリソースをご覧ください。これにより、基本的な変換を超え、実際のプロジェクトでAspose.Cellsを効果的に適用することができます。
結論
Excelファイルを pandas DataFrame に変換することは、Aspose.Cells for Python via .NET を使用することで簡単かつ信頼性の高いものになります。新しいスプレッドシートを作成する場合でも、既存のスプレッドシートをインポートする場合でも、このライブラリは高忠実度のデータ転送と完全なフォーマットサポートを保証します。pandas の柔軟性と Aspose.Cells の高度な Excel 操作を組み合わせることで、データ処理を簡素化し、Python で強力な分析を可能にすることができます。
質問がある場合は、私たちの free support forum を訪れてください。私たちのチームが喜んでお手伝いします。
