Python Xlsxwriter 简明教程
Python XlsxWriter - Working with Pandas
Pandas 是一个流行的 Python 库,用于数据处理和分析。我们可以使用 XlsWriter 将 Pandas dataframes 写入 Excel 工作表。
要了解本节中描述的功能,我们需要在已安装 XlsxWriter 的相同环境中安装 Pandas 库。
pip3 install pandas
Using XlsxWriter with Pandas
让我们从一个简单的示例开始。首先,根据整数列表中的数据创建一个 Pandas 数据框。然后使用 XlsxWriter 作为引擎来创建 Pandas Excel 写入器。借助此引擎对象,我们可以将数据框对象写入 Excel 工作表。
Adding Charts to Pandas Dataframe
就像我们获取 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()
Example
以下代码使用 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()
Writing Dataframe to Excel Table
类似地,可以将数据框写入到 Excel 表对象中。此处的 data 数据框是从 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()
Example
下面的完整代码可以将 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()