说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
本文我们将使用 Python 的 Pandas 和 XlsxWriter 模块 生成一个带有折线图的 Excel 文档,其中数据部分由 Pandas 的数据框提供,XlsxWriter 负责图形的构造和 Excel 的生成。
假设我们有以下的数据,已经用 Pandas 构造完成:
import pandas as pd
# 构造数据
df = pd.DataFrame({'data': [5, 10, 30, 50, 40, 30, 60]},
index=[11, 22, 42, 83, 94, 111, 333])
df
'''
data
11 5
22 10
42 30
83 50
94 40
111 30
333 60
'''
除了将以上数据生成在 Excel 中外,还需求在数据旁边增加对应数据的折线图。最终期望效果如下:
首先用 pd.ExcelWriter
创建一个 Pandas Excel 写入对象,XlsxWriter 作为写入引擎,再 dataframe 转换为 XlsxWriter Excel 对象。
最后用 xlsxwriter 的 workbook 和 worksheet 创建图表对象,插入图形、保存。
代码如下:
# 使用XlsxWriter作为引擎创建Excel编写器。
writer = pd.ExcelWriter('gairuo.com.xlsx', engine='xlsxwriter')
# 将数据框转换为XlsxWriter Excel对象。
df.to_excel(writer, sheet_name='Sheet1')
# 获取xlsxwriter工作簿和工作表对象。
workbook = writer.book
worksheet = writer.sheets['Sheet1']
# 创建图表对象, 类型设置为折线图
chart = workbook.add_chart({'type': 'line'})
# 设置图形的标题
chart.set_title({'name': 'Data 的折线图'})
# 从dataframe数据配置图表,指定序列数据区域
chart.add_series({
'categories': '=Sheet1!$A$2:$A$8', # x轴显示内容
'values': '=Sheet1!$B$2:$B$8',
'line': {'color': 'red'}, # 线条颜色
'name': 'data', # 图例名称
})
# 将图表插入工作表,指定图表的位置
worksheet.insert_chart('D2', chart)
# 关闭Excel writer并输出Excel文件
writer.save()
这时打开 Python 脚本所在的文件夹内的 gairuo.com.xlsx 文件,可以看到效果。
(完)
更新时间:2024-08-18 16:31:27 标签:pandas python excel