📅  最后修改于: 2023-12-03 14:53:02.332000             🧑  作者: Mango
有时候,我们需要将多个 Pandas DataFrames 写入同一个 Excel 文件的不同工作表中。在本文中,我们将介绍如何实现此功能。
!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 文件,并使用 df1
和 df2
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 分别写入了名为 Sheet1
和 Sheet2
的工作表中。
我们现在可以打开 output.xlsx
文件,并检查两个工作表中是否包含我们的数据。
注意: 如果我们想将数据添加到现有的工作表中,而不是创建新的工作表,请使用 startrow
和 startcol
参数指定数据的起始行和列。
# 将 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 文件的不同工作表中。