Python XlsxWriter 使用 Pandas
Pandas 是一个流行的 Python 库,用于数据操作和分析。我们可以使用 XlsWriter 进行写作 熊猫数据框 into an Excel worksheet.
要了解本节中描述的功能,我们需要安装 Pandas 图书馆在相同的环境中,其中 XlsxWriter 已安装。
pip3 install pandas
将 XlsxWriter 与 Pandas 一起使用
让我们从一个简单的例子开始。首先,从整数列表中的数据创建一个 Pandas 数据框。然后使用 XlsxWriter 作为引擎创建 Pandas Excel 编写器。借助此引擎对象,我们可以将数据框对象写入 Excel 工作表。
例子
import pandas as pd df = pd.DataFrame({'Data': [10, 20, 30, 20, 15, 30, 45]}) writer = pd.ExcelWriter('hello.xlsx', engine='xlsxwriter') df.to_excel(writer, sheet_name='Sheet1') writer.save()
这样创建的工作表显示如下:
向 Pandas 数据框添加图表
就像我们得到一个 Workbook 类的对象,然后调用它的一个 Worksheet 对象 add_worksheet() 方法,writer 对象也可用于获取这些对象。一旦我们得到它们,就可以使用 XlsxWriter 方法来添加图表、数据表等。
在这个例子中,我们设置了一个 Pandas 数据框并获取它的维度(或形状)。
import pandas as pd df = pd.DataFrame({'Data': [105, 60, 35, 90, 15, 30, 75]}) writer = pd.ExcelWriter('hello.xlsx', engine='xlsxwriter') df.to_excel(writer, sheet_name='Sheet1') (max_row, max_col) = df.shape
工作簿和工作表对象是从编写器创建的。
workbook = writer.book worksheet = writer.sheets['Sheet1']
其余的事情都很容易。图表对象像我们之前所做的那样被添加。
chart = workbook.add_chart({'type': 'column'}) chart.add_series({'values': ['Sheet1', 1, 1, max_row, 1]}) worksheet.insert_chart(1, 3, chart) writer.save()
例子
以下代码使用 Pandas 数据框编写 Excel 工作簿,柱形图由 XlsxWriter 准备。
import pandas as pd df = pd.DataFrame({'Data': [105, 60, 35, 90, 15, 30, 75]}) writer = pd.ExcelWriter('hello.xlsx', engine='xlsxwriter') df.to_excel(writer, sheet_name='Sheet1') (max_row, max_col) = df.shape workbook = writer.book worksheet = writer.sheets['Sheet1'] chart = workbook.add_chart({'type': 'column'}) chart.add_series({'values': ['Sheet1', 1, 1, max_row, 1]}) worksheet.insert_chart(1, 3, chart) writer.save()
柱形图连同数据如下图所示:
将数据框写入 Excel 表
同样,可以将数据框写入 Excel 表格对象。这里的数据框来自 Python 字典,其中的键是数据框列标题。每个键都有列表作为值,该值又成为每列的值。
import pandas as pd df = pd.DataFrame({ 'Name': ['Namrata','Ravi','Kiran','Karishma'], 'Percent': [73.33, 70, 75, 65.5], 'RollNo': [1, 2,3,4]}) df = df[['RollNo', 'Name', 'Percent']] (max_row, max_col) = df.shape
使用 xlsxwriter 引擎将数据框写入工作表(sheet1)
writer = pd.ExcelWriter('hello.xlsx', engine='xlsxwriter') df.to_excel(writer, sheet_name='Sheet1', startrow=1, header=False, index=False)
以下几行给出了 Workbook 和 Worksheet 对象。
workbook = writer.book worksheet = writer.sheets['Sheet1']
工作表中的数据在 add_table() 方法的帮助下转换为表格。
column_settings = [{'header': column} for column in df.columns] worksheet.add_table(0, 0, max_row, max_col - 1, {'columns': column_settings}) writer.save()
例子
以下是将 pandas 数据框写入 Excel 表的完整代码。
import pandas as pd df = pd.DataFrame({ 'Name': ['Namrata','Ravi','Kiran','Karishma'], 'Percent': [73.33, 70, 75, 65.5], 'RollNo': [1, 2,3,4] }) df = df[['RollNo', 'Name', 'Percent']] (max_row, max_col) = df.shape writer = pd.ExcelWriter('hello.xlsx', engine='xlsxwriter') df.to_excel(writer, sheet_name='Sheet1', startrow=1, header=False, index=False) workbook = writer.book worksheet = writer.sheets['Sheet1'] column_settings = [{'header': column} for column in df.columns] worksheet.add_table(0, 0, max_row, max_col - 1, {'columns': column_settings}) writer.save()
使用默认自动筛选设置的表格出现在 A1 单元格以后。