python中将生成的Excel文件数据,汇总成图表或者表格
时间: 2024-04-16 11:26:12 浏览: 223
要将生成的Excel文件中的数据汇总成图表或表格,你可以使用`pandas`和`openpyxl`库来操作Excel文件和数据。下面是一个示例代码,演示如何从Excel文件中读取数据并生成图表和表格:
```python
import pandas as pd
from openpyxl import load_workbook
import openpyxl.chart
# 读取Excel文件
filename = 'data.xlsx'
df = pd.read_excel(filename, sheet_name='Data')
# 创建汇总表格
summary_data = {
'Average Age': [df['Age'].mean()],
'Average Salary': [df['Salary'].mean()]
}
summary_df = pd.DataFrame(summary_data)
# 创建柱状图
chart = openpyxl.chart.BarChart()
values = openpyxl.chart.Reference(summary_df, min_col=2, max_col=3, min_row=1, max_row=1)
categories = openpyxl.chart.Reference(summary_df, min_col=1, max_col=1, min_row=2, max_row=2)
series = openpyxl.chart.Series(values, categories)
chart.append(series)
# 打开Excel文件并插入汇总表格和图表
wb = load_workbook(filename)
summary_ws = wb.create_sheet(title='Summary', index=1)
for r in dataframe_to_rows(summary_df, index=False, header=True):
summary_ws.append(r)
summary_ws.add_chart(chart, 'E1')
# 保存Excel文件
wb.save(filename)
```
在示例代码中,首先使用`pandas`库的`read_excel()`函数读取Excel文件中的数据,并将其存储在DataFrame对象中。然后,根据需要计算数据的汇总统计,例如平均年龄和平均薪水,创建一个汇总表格。
接下来,使用`openpyxl.chart.BarChart()`创建一个柱状图对象,并使用`openpyxl.chart.Reference()`来指定图表的数据区域和类别区域。然后,将图表添加到汇总工作表中。
最后,使用`openpyxl`的`load_workbook()`函数打开Excel文件,创建一个新的汇总工作表并将汇总表格写入其中。然后,将图表插入到汇总工作表中。
最后,使用`wb.save()`保存修改后的Excel文件。
这只是一个示例,你可以根据实际需求和数据格式进行修改和扩展。`pandas`和`openpyxl`库提供了丰富的功能来操作Excel文件和创建各种类型的图表和表格。
阅读全文