开发人员通常需要将 Pandas DataFrame 导出到 Excel。Excel 是共享和审查报告的优秀工具。Python 与 Pandas 使这变得简单,但使用 Aspose.Cells for Python 可以让您获得更多控制。您可以直接将 DataFrame 转换为 Excel,通过 CSV、通过 JSON,甚至将多个 DataFrames 导出到一个文件中。在本文中,您将逐步学习如何通过四种方法将 Pandas DataFrame 转换为 Excel。
为什么在 Pandas 中使用 Aspose.Cells 导出到 Excel
Pandas 有一个内置的 toexcel()
函数。它适用于基本导出,但功能有限。Aspose.Cells for Python 是开发者使用的 最好的 Python Excel 库,提供完整的 Excel 引擎。它让您能够以高可靠性将 DataFrames 保存到 Excel。您还可以处理图表、公式、格式和大型文件。
这篇文章将向你展示如何使用 Aspose.Cells 以不同方式将 Pandas DataFrame 导出到 Excel。
在开始之前,请确保您已安装以下软件:
- 从 releases 下载 Aspose.Cells for Python 或使用 pip 安装:
pip install aspose-cells-python
- Pandas – 使用 pip 安装:
pip install pandas
这两个库将允许您将 Pandas DataFrames 转换为 Excel 文件。
方法 1:直接使用 Aspose.Cells 将 DataFrame 转换为 Excel
最常见的任务是直接将 Pandas DataFrame 导出到 Excel。使用 Aspose.Cells,您可以创建一个工作簿,导入 DataFrame 值,并将其保存为 Excel 文件。
按照以下步骤将 DataFrame 转换为 Excel:
- 构建一个示例数据集。
- 初始化一个空的 Excel 工作簿。
- 访问工作簿中的第一个工作表。
- 将 DataFrame 列名插入到 Excel 单元格中。
- 遍历 DataFrame 中的每一行并将值放入单元格。
- 将最终的工作簿导出为 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:将 DataFrame 保存为 Excel
wb.save("direct_df_to_excel.xlsx")

直接使用 Aspose.Cells 将数据框转换为 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:
- 构建示例数据。
- 使用 Pandas 的
tocsv()
方法将 DataFrame 保存为 CSV 文件。 - 打开 CSV 文件作为工作簿。
- 将工作簿导出为
.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:将数据框保存为 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。它确保您的 Pandas 到 Excel 的转换即使在您的 pipeline 已经依赖于 CSV 文件的情况下也能正常工作。
使用此方法可以在快速从 CSV 转换为 Excel 的同时保持 Pandas 和 Aspose.Cells 的灵活性。
方法 3:通过 JSON 将 DataFrame 转换为 Excel
许多 API 使用 JSON。您还可以将 JSON 传递给 Aspose.Cells 以构建 Excel 表格。此方法首先将 Pandas DataFrame 转换为 JSON,然后将该 JSON 加载到 Excel 中作为表格。它保持您从 pandas 导出到 Excel 的过程干净且可靠。当您想严格控制标题和数据类型时,它也非常有帮助。
请按照以下步骤进行:
- 构建演示的示例数据。
- 调用
df.tojson(orient='records')
进行转换。 - 初始化
Workbook()
类对象并获取第一个工作表。 - 启用
arrayastable
以便正确导入表格。 - 调用
JsonUtility.importdata()
方法将 JSON 导入工作表单元格。 - 将最终文件写入
.xlsx
。
以下代码示例演示了如何通过 JSON 将 Pandas 数据框转换为 Excel:
import pandas as pd
from aspose.cells.utility import JsonUtility, JsonLayoutOptions
from aspose.cells import Workbook, Worksheet, Cells
# 创建一个示例 pandas 数据框
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 的导出。
请按照以下步骤进行:
- 创建一个函数,将多个 DataFrame 写入多个工作表。
- 初始化一个新工作簿。
- 为每个 DataFrame 添加一个工作表,并将其命名为
sheetnames
。 - 将列名放在第一行。
- 循环遍历 DataFrame 元组并写入单元格值。
- 导出为 XLSX,使用
workbook.save()
方法。
以下代码示例演示如何将多个 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"
)

使用 Aspose.Cells 将多个 Pandas DataFrame 导出到 Excel 表中。
该功能将每个 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。我们将很高兴为您提供帮助。