- Python XlsxWriter 教程
- Python XlsxWriter - 首页
- Python XlsxWriter - 概述
- Python XlsxWriter - 环境设置
- Python XlsxWriter - Hello World
- Python XlsxWriter - 重要类
- Python XlsxWriter - 单元格表示法和范围
- Python XlsxWriter - 已定义的名称
- Python XlsxWriter - 公式和函数
- Python XlsxWriter - 日期和时间
- Python XlsxWriter - 表格
- Python XlsxWriter - 应用筛选器
- Python XlsxWriter - 字体和颜色
- Python XlsxWriter - 数字格式
- Python XlsxWriter - 边框
- Python XlsxWriter - 超链接
- Python XlsxWriter - 条件格式
- Python XlsxWriter - 添加图表
- Python XlsxWriter - 图表格式
- Python XlsxWriter - 图表图例
- Python XlsxWriter - 条形图
- Python XlsxWriter - 折线图
- Python XlsxWriter - 饼图
- Python XlsxWriter - 微型图表
- Python XlsxWriter - 数据验证
- Python XlsxWriter - 大纲和分组
- Python XlsxWriter - 冻结和分割窗格
- Python XlsxWriter - 隐藏/保护工作表
- Python XlsxWriter - 文本框
- Python XlsxWriter - 插入图片
- Python XlsxWriter - 页面设置
- Python XlsxWriter - 页眉和页脚
- Python XlsxWriter - 单元格批注
- Python XlsxWriter - 与Pandas一起使用
- Python XlsxWriter - VBA宏
- Python XlsxWriter 有用资源
- Python XlsxWriter - 快速指南
- Python XlsxWriter - 有用资源
- Python XlsxWriter - 讨论
Python XlsxWriter - 与Pandas一起使用
Pandas 是一个流行的 Python 库,用于数据处理和分析。我们可以使用 XlsxWriter 将Pandas 数据帧写入 Excel 工作表。
要学习本节中描述的功能,我们需要在已安装XlsxWriter的同一环境中安装Pandas库。
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 类对象,然后通过调用其add_worksheet()方法获得 Worksheet 对象一样,写入器对象也可以用于获取这些对象。一旦我们得到它们,就可以使用 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 表格对象。此处的dataframe源于一个Python字典,其中键是dataframe列标题。每个键都有一个列表作为值,该列表又成为每一列的值。
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 单元格及其之后。