📜  如何将 Pandas DataFrames 写入多个 Excel 工作表?(1)

📅  最后修改于: 2023-12-03 14:53:02.332000             🧑  作者: Mango

如何将 Pandas DataFrames 写入多个 Excel 工作表?

有时候,我们需要将多个 Pandas DataFrames 写入同一个 Excel 文件的不同工作表中。在本文中,我们将介绍如何实现此功能。

准备工作

在开始之前,我们需要安装openpyxlpandas库。

!pip install openpyxl pandas
代码实现

我们首先创建两个 Pandas DataFrames,其中每个 DataFrame 包含一些数据。

import pandas as pd

df1 = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie', 'David'],
                    'Age': [25, 32, 18, 47],
                    'Country': ['USA', 'Canada', 'UK', 'USA']})

df2 = pd.DataFrame({'City': ['New York', 'Toronto', 'London', 'Los Angeles'],
                    'Population': [8399000, 2930000, 8900000, 3990000],
                    'Country': ['USA', 'Canada', 'UK', 'USA']})

接下来,我们使用 Pandas 的 ExcelWriter 对象创建一个 Excel 文件,并使用 df1df2 DataFrames 写入两个工作表。

# 创建 ExcelWriter 对象
writer = pd.ExcelWriter('output.xlsx', engine='openpyxl')

# 将 df1 DataFrame 写入一个工作表
df1.to_excel(writer, sheet_name='Sheet1', index=False)

# 将 df2 DataFrame 写入另一个工作表
df2.to_excel(writer, sheet_name='Sheet2', index=False)

# 关闭 ExcelWriter 对象
writer.save()

在此例中,我们将两个 DataFrames 分别写入了名为 Sheet1Sheet2 的工作表中。

我们现在可以打开 output.xlsx 文件,并检查两个工作表中是否包含我们的数据。

注意: 如果我们想将数据添加到现有的工作表中,而不是创建新的工作表,请使用 startrowstartcol 参数指定数据的起始行和列。

# 将 df1 DataFrame 写入 Sheet1 工作表,起始行为第 3 行,起始列为第 2 列
df1.to_excel(writer, sheet_name='Sheet1', startrow=2, startcol=1, index=False)

# 将 df2 DataFrame 写入 Sheet2 工作表,起始行为第 6 行,起始列为第 3 列
df2.to_excel(writer, sheet_name='Sheet2', startrow=5, startcol=2, index=False)

这将把 df1 的数据添加到 Sheet1 工作表的第 3 行和第 2 列开始的位置,将 df2 的数据添加到 Sheet2 工作表的第 6 行和第 3 列开始的位置。

结论

使用 Pandas 和 openpyxl 库,我们可以轻松地将多个 Pandas DataFrames 写入 Excel 文件的不同工作表中。