開發人員經常需要將 Pandas 的 DataFrame 匯出到 Excel。Excel 是分享和審查報告的優秀工具。Python 使用 Pandas 使這變得簡單,但使用 Aspose.Cells for Python 可以讓你擁有更多控制權。你可以直接將 DataFrame 轉換為 Excel,通過 CSV,通過 JSON,甚至將多個 DataFrame 匯出到一個文件。在本文中,你將學習如何使用四種方法將 Pandas 的 DataFrame 逐步轉換為 Excel。

為什麼使用 Aspose.Cells 將 Pandas 轉換為 Excel

Pandas 擁有內建的 toexcel() 函數。它適用於基本的匯出,但功能有限。 Aspose.Cells for Python 是開發者使用的 最佳 Python Excel 函式庫,提供完整的 Excel 引擎。它使用高可靠性讓你將 DataFrames 儲存為 Excel。你還可以處理圖表、公式、格式和大型檔案。

這篇文章將向您展示如何使用 Aspose.Cells 以不同方式將 Pandas DataFrame 匯出到 Excel。

在開始之前,請確保您已安裝以下內容:

  1. 下載 Aspose.Cells for Python 從發布版本或使用 pip 安裝:
pip install aspose-cells-python
  1. Pandas – 使用 pip 安裝:
pip install pandas

這兩個函式庫將允許您將 Pandas DataFrame 轉換為 Excel 檔案。

方法 1:使用 Aspose.Cells 直接將 DataFrame 轉換為 Excel

最常見的任務是將 Pandas DataFrame 直接導出到 Excel。使用 Aspose.Cells,您可以創建一本工作簿,導入 DataFrame 的值,並將其保存為 Excel 文件。

按照以下步驟將 DataFrame 轉換為 Excel:

  1. 建立一個範例數據集。
  2. 初始化一個空的 Excel 工作簿。
  3. 訪問工作簿中的第一個工作表。
  4. 將 DataFrame 的列名稱插入到 Excel 單元格中。
  5. 循環遍歷數據框中的每一行並將值放入單元格中。
  6. 將最終工作簿導出為 Excel 文件。

以下的程式碼範例顯示如何直接將 Pandas 轉換為 Excel:

import aspose.cells as ac
import pandas as pd

# 第 1 步:創建一個示例 DataFrame
data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David'],
    'age': [25, 32, 18, 47],
    'city': ['New York', 'Paris', 'London', 'Berlin']
}
df = pd.DataFrame(data)

# 步驟 2:創建一個新的工作簿
wb = ac.Workbook()

# 步驟 3:獲取第一個工作表
worksheet = wb.worksheets[0]

# 步驟 4:獲取儲存格集合
cells = worksheet.cells

# 步驟 5:將 DataFrame 列名稱寫入 Excel
rowindex = 0
colindex = 0
for column in df:
    cell = cells.get(rowindex, colindex)
    cell.put_value(df[column].name)
    colindex += 1

# 步驟 6:將 DataFrame 行寫入 Excel
for index, row in df.iterrows():
    rowindex += 1
    colindex = 0
    cell = cells.get(rowindex, colindex)
    cell.put_value(row["name"])
    colindex += 1
    cell = cells.get(rowindex, colindex)
    cell.put_value(row["age"])
    colindex += 1
    cell = cells.get(rowindex, colindex)
    cell.put_value(row["city"])
    colindex += 1

# 步驟 7:將資料框儲存為 Excel
wb.save("direct_df_to_excel.xlsx")
將 DataFrame 直接轉換為 Excel,使用 Aspose.Cells

直接使用 Aspose.Cells 將 DataFrame 轉換為 Excel。

這段代碼將 Pandas DataFrame 儲存到指定位置的 Excel 文件中。您可以更改路徑以匹配您的系統。

此方法讓您完全控制如何將 Pandas DataFrame 數據寫入 Excel。這是使用 Aspose.Cells 將 DF 轉換為 Excel 的最直接方式。

方法 2:通過 CSV 將 DataFrame 轉換為 Excel

另一個簡單的方法是先將您的 Pandas DataFrame 保存為 CSV,然後使用 Aspose.Cells 將該 CSV 文件轉換為 Excel。當您的過程已經生成 CSV 輸出而您仍然需要一個乾淨的 Excel 文件時,這是非常有用的。

請按照以下步驟通過 CSV 將 DataFrame 轉換為 Excel:

  1. Build sample data.
  2. 使用 Pandas 的 tocsv() 方法將 DataFrame 保存為 CSV。
  3. 打開 CSV 文件作為工作簿。
  4. 將工作簿導出為 .xlsx 文件。

以下代碼示例顯示如何通過 CSV 將 Pandas 轉換為 Excel:

import aspose.cells as ac
import pandas as pd

# 步驟 1:創建一個示例 DataFrame
data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David'],
    'age': [25, 32, 18, 47],
    'city': ['New York', 'Paris', 'London', 'Berlin']
}
df = pd.DataFrame(data)

# 步驟 2:將 DataFrame 儲存為 CSV
df.to_csv("temp.csv", index=False)

# 步驟 3:使用 Aspose.Cells 載入 CSV 文件
wb = ac.Workbook("temp.csv")

# 步驟 4:另存為 Excel 檔案
wb.save("df_via_csv.xlsx")

這種方法首先創建一個 CSV 檔案,然後將其轉換為 Excel。它確保即使您的管道已經依賴 CSV 檔案,您的 Pandas 到 Excel 轉換仍然可以正常運作。

當您想要迅速從 CSV 轉換為 Excel,同時保持 Pandas 和 Aspose.Cells 的靈活性時,請使用此方法。

方法 3:透過 JSON 將 DataFrame 轉換為 Excel

許多 API 使用 JSON。您也可以將 JSON 傳遞給 Aspose.Cells 來建立 Excel 工作表。此方法首先將 Pandas DataFrame 轉換為 JSON,然後將該 JSON 載入 Excel 作為表格。它保持您的 pandas 到 Excel 的匯出乾淨且可靠。在您希望對標頭和資料類型進行嚴格控制時,它也會有所幫助。

請遵循以下步驟:

  1. 建立示範的範例數據。
  2. 呼叫 df.tojson(orient='records') 以進行轉換。
  3. 初始化 Workbook() 類別物件並獲取第一個工作表。
  4. 啟用 arrayastable 以進行正確的表格導入。
  5. 呼叫 JsonUtility.importdata() 方法以將 JSON 匯入工作表單元格。
  6. 將最終文件寫入 .xlsx

以下代碼範例顯示了如何通過 JSON 將 Pandas 數據框轉換為 Excel:

import pandas as pd
from aspose.cells.utility import JsonUtility, JsonLayoutOptions
from aspose.cells import Workbook, Worksheet, Cells

# 創建一個範例 pandas DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'City': ['New York', 'San Francisco', 'Los Angeles']}
        	
df = pd.DataFrame(data)

# 將 pandas DataFrame 轉換為 JSON
json_string = df.to_json(orient='records')

workbook = Workbook()

# 獲取第一張工作表
worksheet = workbook.worksheets[0]

# 獲取單元格
cells = worksheet.cells

options = JsonLayoutOptions()
unit = JsonUtility()

# 流程作為表格
options.array_as_table = True

# 將 JSON 數據導入工作表,從第 0 行、第 0 列開始。
unit.import_data(json_string, cells, 0, 0, options)

# 另存為 Excel 檔案
workbook.save("df_via_json.xlsx")

orient='records' 產生一個物件的列表。每個物件將鍵映射到列名。 arrayastable=True 告訴 Aspose.Cells 將數組視為一個具有標題的正確表格。導入器從 A1 開始將值寫入單元格。這為您在 Excel 提供了一個可預測的佈局。

方法 4:將多個 DataFrame 匯出到 Excel 工作表

您可以將多個 Pandas DataFrame 寫入單個 Excel 檔案。每個 DataFrame 將放入各自的工作表。此方法為報告和分組表提供了乾淨的 pandas 到 Excel 的匯出。

請按照以下步驟操作:

  1. 創建一個函數,將多個 DataFrame 寫入多個工作表。
  2. 初始化一個新的工作簿。
  3. 為每個 DataFrame 添加一個工作表,並根據 sheetnames 命名它。
  4. 將欄位名稱放在第一行。
  5. 遍歷 DataFrame 元組並寫入單元格值。
  6. 使用 workbook.save() 方法導出為 XLSX。

以下代碼範例顯示如何將多個 Pandas DataFrame 匯出到 Excel 工作表:

import pandas as pd
from aspose.cells import Workbook, WorksheetCollection, SaveFormat

def write_multiple_dataframes_to_excel(dataframes, sheet_names, output_path):
    """
    Write multiple DataFrames to multiple sheets in an Excel file
    :param dataframes: List of pandas.DataFrame
    :param sheet_names: List of sheet names (same length as dataframes)
    :param output_path: Output Excel file path
    """
    # 建立一個空白工作簿
    workbook = Workbook()

    # 可選:如果不需要請移除預設的空白工作表
    # workbook.worksheets.removeat(0)

   for df, name in zip(dataframes, sheet_names):
        # 添加新的工作表
        worksheet = workbook.worksheets.add(name)
        cells = worksheet.cells

        # 寫下標題
       for col_idx, col_name in enumerate(df.columns):
            cells.get(0, col_idx).put_value(str(col_name))

        # Write row data
       for row_idx, row in enumerate(df.itertuples(index=False), start=1):
           for col_idx, value in enumerate(row):
                cells.get(row_idx, col_idx).put_value(value)

    # 另存為 Excel 檔案
    workbook.save(output_path, SaveFormat.XLSX)

# 創建兩個 DataFrame
df1 = pd.DataFrame({
    "Name": ["Alice", "Bob"],
    "Age": [25, 30]
})

df2 = pd.DataFrame({
    "Product": ["Book", "Pen"],
    "Price": [10.5, 1.99]
})

# 寫入 Excel
write_multiple_dataframes_to_excel(
    dataframes=[df1, df2],
    sheet_names=["People", "Products"],
    output_path="MultiDataFrame.xlsx"
)
將多個 Pandas DataFrame 匯出到使用 Aspose.Cells 的 Excel 工作表

將多個 Pandas DataFrames 導出到 Excel 工作表,使用 Aspose.Cells。

該函數將每個 DataFrame 與一個工作表名稱配對。它在第 0 行寫入標題,並從第 1 行寫入數據。Aspose.Cells 以強類型寫入單元格的值。最終的 XLSX 文件保持您的表格清晰並準備好共享。

獲取免費許可證

評估 Aspose.Cells for Python via .NET,無限制。請從 license page 申請免費臨時授權。在您的程式碼中應用此授權以移除評估限制。測試每一個功能,包括 DF 到 Excel、圖表、公式和大型文件。

PD to Excel: 免費資源

請利用這些資源來增強您的知識並提高您的理解。

結論

您已經學會了使用 Aspose.Cells for Python 將 Pandas DataFrame 匯出到 Excel 的各種方法。您可以直接保存 DataFrame,使用 CSV,使用 JSON,或將多個 DataFrame 寫入一個檔案。每種方法都簡單、快速且可靠。如果您正在尋找超越 Pandas 的進階 Excel 功能,Aspose.Cells 是正確的選擇。在您的下一個項目中試試它,並完全控制地從 Pandas 轉移到 Excel。

如果您有任何問題,請訪問我們的 free support forum。我們將很高興為您提供幫助。

請參閱