Exemplo n.º 1
0
    def insert_dataframe2(self):
        """Получаем путь к файлу"""
        file_path = QFileDialog.getOpenFileName(self,
                                                "Выбрать каталог excel ")[0]
        """Проверка на провильность выбронного пути """
        if len(file_path) > 0:  # Если выбрано что-то

            if 'xlsx' in file_path:  # Проверяем есть ли путь к excel
                self.new_df2 = pd.read_excel(
                    file_path)  # Читаем файл №2 по пути который получили
                # self.new_df2 = df2  # Записываем в new_df2 для дальнейшей работы с ним
                """Создаем модель для представления  с помощью класса pandasModel"""
                self.dataframe2model = pandasModel(self.new_df2)
                self.plainTextEdit_cat2.setPlainText(
                    file_path)  # путь в текстовое поле 2

                self.tableView_cat2.setModel(
                    self.dataframe2model)  # В view import
                self.tableView_2.setModel(
                    self.dataframe2model)  # Кладем даные в tableview

            else:
                self.msgBox_another_file = QtWidgets.QMessageBox()
                self.msgBox_another_file.setWindowTitle('Ошибка')
                self.msgBox_another_file.setText(
                    "Вы выбрали не верный формат файла")
                self.msgBox_another_file.setStandardButtons(
                    QtWidgets.QMessageBox.Ok)
                self.msgBox_another_file.exec_()

        else:
            pass  # Заглушка если нажата отмена или закрыть окно
        """Метод который будет сравнивать каталоги """
Exemplo n.º 2
0
    def insert_dataframe1(self):
        """Метод который отображает данные в tableView"""
        """Открывается filedialog и берет путь"""
        file_path = QFileDialog.getOpenFileName(self, "Выбрать каталог excel ",
                                                "excel")[0]
        if len(file_path) > 0:

            if 'xlsx' in file_path:
                self.new_df1 = pd.read_excel(
                    file_path)  # Читаем файл №1 по пути который получили
                # self.new_df1 = df1  # Записываем в mew_df1 для дальнейшей работы с ним
                """Создаем объект для первой таблицы из pandasModel"""
                self.dataframe1model = pandasModel(self.new_df1)
                self.plainTextEdit_cat1.setPlainText(
                    file_path)  # путь в текстовое поле 1
                self.tableView_cat1.setModel(
                    self.dataframe1model)  # В view  import
                self.tableView_1.setModel(
                    self.dataframe1model)  # Кладем даные в tableview_1

            else:
                self.msgBox_another_file = QtWidgets.QMessageBox()
                self.msgBox_another_file.setWindowTitle('Ошибка')
                self.msgBox_another_file.setText(
                    "Вы выбрали не верный формат файла")
                self.msgBox_another_file.setStandardButtons(
                    QtWidgets.QMessageBox.Ok)
                self.msgBox_another_file.exec_()
        else:

            pass  # Заглушка
Exemplo n.º 3
0
    def compare_dataframe(self):
        """При нажатии на кнопку он будет проверять выбраны ли данные """
        if self.new_df1.empty or self.new_df2.empty:  # Проверка на имеющиеяся данные
            self.msgBox_compare_error = QtWidgets.QMessageBox()
            self.msgBox_compare_error.setWindowTitle("Ошибка")
            self.msgBox_compare_error.setText(
                "Вы должны выбрать 2 каталога для сравнения!")
            self.msgBox_compare_error.setStandardButtons(
                QtWidgets.QMessageBox.Ok)
            self.msgBox_compare_error.exec_()
        else:
            """Если данные выбраны пытаемся их сравнить"""
            try:
                """Произовдим слияние таблиц по столбцам"""
                """Сливаются только те значения кторые есть в обоих таблицах"""
                self.new_df_for_saving = pd.merge(
                    self.new_df1,
                    self.new_df2,
                    on=["year", "month", "day", "hour", "min"],
                    how="inner")
                self.new_df_for_saving[
                    'mpv_difference'] = self.new_df_for_saving[
                        'mpv_x'] - self.new_df_for_saving['mpv_y']

                self.new_df_for_saving[
                    'depth_difference'] = self.new_df_for_saving[
                        'depth_x'] - self.new_df_for_saving['depth_y']

                # self.new_df_for_saving = result_df  # Результат сохраняем в атрибут new_df_for_saving
                """Создаем объект из второй таблицы  с помощью класса pandasModel
                для того чтобы их вывести на result_tableView"""
                self.dataframe_resultmodel = pandasModel(
                    self.new_df_for_saving)
                # self.result_tableView = QTableView()  # Представление для показа результата
                self.result_tableView.setWindowTitle("Результат сравнения")
                self.result_tableView.setModel(
                    self.dataframe_resultmodel)  # Кладем даные в Qtableview
                self.result_tableView.show()

                self.stackedWidget.setCurrentIndex(2)
                # Если успешно переход QStackedWidget   на resultWidget

            except KeyError:  # Если значения столбцов не совпадают
                self.msgBox_compare_error = QtWidgets.QMessageBox()
                self.msgBox_compare_error.setWindowTitle("Ошибка сравнения")
                self.msgBox_compare_error.setText(
                    "Название столбцов в 2-х каталогах должны быть одинаковы!")
                self.msgBox_compare_error.setStandardButtons(
                    QtWidgets.QMessageBox.Ok)
                self.msgBox_compare_error.exec_()
        """Для сохранения результата"""