基于PyQt5制作Excel数据分组汇总器

  • Post category:Python

下面是基于PyQt5制作Excel数据分组汇总器的完整实例教程。

1. 简介

本实例介绍了如何使用PyQt5制作一个Excel数据分组汇总器。使用该应用程序,用户可以将Excel数据表中的数据进行分组,并对分组后的数据进行汇总计算,例如求和、平均等。该应用程序采用PyQt5开发,具有良好的用户界面和交互性。

2. 准备工作

在制作Excel数据分组汇总器之前,需要安装PyQt5库和pandas库。可以使用下面的命令安装这两个库:

pip install pyqt5 pandas

3. 功能介绍

Excel数据分组汇总器的主要功能包括:

  1. 导入Excel数据表:用户可以通过导入Excel文件的方式导入需要处理的数据表;
  2. 分组设置:用户可以根据需要对数据进行分组设置,例如按照某一列的数值进行分组;
  3. 汇总统计:用户可以选择需要进行的汇总计算方式,例如求和、平均等。

其中,分组设置和汇总统计是Excel数据分组汇总器的核心功能。

4. 示例说明

下面介绍两个示例,演示如何使用Excel数据分组汇总器进行数据处理。

示例一

假设我们有一个Excel数据表,包含以下内容:

产品 销售量 单价
A 10 5
A 20 6
B 30 8
B 40 7

我们想要按照产品进行分组,并分别计算每个产品的总销售量和平均单价。使用Excel数据分组汇总器进行处理的具体步骤如下:

  1. 点击导入Excel文件按钮,选择需要处理的Excel文件,并点击打开按钮;
  2. 在“分组设置”选项卡中,选择“产品”一列作为分组依据;
  3. 在“汇总统计”选项卡中,选择“销售量”列并勾选“求和”和“平均值”,选择“单价”列并勾选“平均值”;
  4. 点击执行按钮,程序会自动对数据进行分组处理并进行汇总计算,可以在“结果输出”文本框中查看处理后的数据。

处理结果如下所示:

产品 销售量_总和 销售量_平均值 单价_平均值
A 30 15 5.5
B 70 35 7.5

示例二

假设我们有一个Excel数据表,包含以下内容:

姓名 年龄 性别 薪资
张三 25 5000
李四 30 7000
王五 35 8000
赵六 40 9000

我们想要按照性别进行分组,并分别计算每个性别的人数、平均年龄和平均薪资。使用Excel数据分组汇总器进行处理的具体步骤如下:

  1. 点击导入Excel文件按钮,选择需要处理的Excel文件,并点击打开按钮;
  2. 在“分组设置”选项卡中,选择“性别”一列作为分组依据;
  3. 在“汇总统计”选项卡中,选择“年龄”列并勾选“平均值”,选择“薪资”列并勾选“平均值”,单击“添加计数列”按钮,添加一个空白列,并在“计算方式”中选择“计数”,在“计数列名”中输入“人数”;
  4. 点击执行按钮,程序会自动对数据进行分组处理并进行汇总计算,可以在“结果输出”文本框中查看处理后的数据。

处理结果如下所示:

性别 年龄_平均值 薪资_平均值 人数
35 8000 2
30 6500 2

5. 源代码

以下是Excel数据分组汇总器的源代码,仅供参考:

import sys
import pandas as pd
from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog
from PyQt5.QtCore import Qt
from PyQt5.uic import loadUi

class MainWindow(QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()

        # 加载UI布局
        loadUi('mainwindow.ui', self)

        # 禁止文本框编辑
        self.resultOutput.setReadOnly(True)
        self.groupBy.setReadOnly(True)
        self.summarize.setReadOnly(True)

        # 绑定信号槽
        self.actionOpen.triggered.connect(self.importExcel)
        self.execButton.clicked.connect(self.execute)

        # 初始化DataFrame
        self.df = None

    def importExcel(self):
        # 弹出文件选择器
        filename = QFileDialog.getOpenFileName()[0]
        if filename:
            # 读取Excel文件
            self.df = pd.read_excel(filename)
            # 在界面上显示数据
            self.resultOutput.setPlainText(str(self.df))

    def execute(self):
        # 获取分组设置和汇总统计
        groupBy = self.groupBy.text()
        summarize = self.summarize.toPlainText()

        if self.df is None:
            self.resultOutput.setPlainText('请先导入Excel数据表')
            return

        if not groupBy:
            self.resultOutput.setPlainText('请设置分组设置')
            return

        if not summarize:
            self.resultOutput.setPlainText('请设置汇总统计')
            return

        # 对数据进行分组和汇总计算
        groups = self.df.groupby(groupBy)
        results = groups.agg(summarize)
        # 在界面上显示结果
        self.resultOutput.setPlainText(str(results))

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

6. 总结

本实例介绍了如何使用PyQt5制作Excel数据分组汇总器,通过两个示例演示了如何进行数据处理。使用PyQt5可以轻松地开发出拥有良好用户界面和交互性的应用程序,在数据处理领域有广泛的应用前景。