Python XlsxWriter – 与Pandas一起工作

Python XlsxWriter – 与Pandas一起工作

Pandas是一个流行的Python库,用于数据操作和分析。我们可以使用XlsWriter将 Pandas数据帧 写入Excel工作表中。

为了学习本节描述的功能,我们需要在安装 XlsxWriter 的同一环境中安装 Pandas 库。

pip3 install pandas

在Pandas中使用XlsxWriter

让我们从一个简单的例子开始。首先,从整数列表的数据中创建一个Pandas数据框架。然后使用XlsxWriter作为引擎来创建一个Pandas Excel writer。在这个引擎对象的帮助下,我们可以将数据框架对象写入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()

输出

这样创建的工作表显示如下

Python XlsxWriter - 与Pandas一起工作

向Pandas数据框架添加图表

就像我们获得一个工作簿类的对象,然后通过调用其 add_worksheet() 方法获得一个工作表对象一样,写作者对象也可以用来获取这些对象。一旦我们得到这些对象,就可以使用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()

例子

下面的代码使用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()

输出

柱状图与数据一起显示如下

Python XlsxWriter - 与Pandas一起工作

将数据框架写入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 = 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单元格之后。

Python XlsxWriter - 与Pandas一起工作

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程