QTableWidget и Pandas. В таблице выводятся пустые строки

Есть таблица из MySQL, которая принимается в DataFrame. Далее она проходит обработку и при выполнении условия фильтров она должна выводиться в таблицу.
Фильтры все работают корректно, print дает правильно количество строк. Однако в QTableWidget выводятся пустые строки в конце. При чем количестве равном непустым строкам.
Помогите, пожалуйста. Я понимаю, что скорее всего проблема именно с заполнением таблицы, но найти ошибку не могу.

Print DataFrame (2 строки и 16 колонок): введите сюда описание изображения

Таблица в приложении: введите сюда описание изображения

код вывода таблицы (в основном классе):

class Product(QWidget):
    def __init__(self):
        super(Product, self).__init__()
        self.ui = Ui_Form()
        self.ui.setupUi(self)

        self.table = self.ui.table
        self.table.resizeColumnsToContents()
        self.ui.btn_find.clicked.connect(self.find_Product)

а это функция фильтрации DataFrame. После прохода всех фильтров формируется таблица:

def find_Product(self):
        prod_in_db = self.get_all_Products_from_db()
        KSSS_prod = self.ui.line_KSSS.text()
        Product_Name = self.ui.line_Prod_name.currentText()
        Product_Family = self.ui.line_Prod_Fam.currentText()
        Brand = self.ui.line_Brand.currentText()

        if KSSS_prod != '':
            if KSSS_prod.isdigit() == True:
                prod_in_db['KSSS_prod'] = prod_in_db['KSSS_prod'].astype(int)
                prod_in_db = prod_in_db[(prod_in_db['KSSS_prod'] == int(KSSS_prod))]
            else:
                msg = QMessageBox()
                msg.setText('Digits only are alowd!')
                msg.setStyleSheet("background-color: #f8f8f2;\n"
                                "font: 10pt  \"Segoe UI\";"
                                "color: #4b0082;\n"
                                " ")
                msg.setIcon(QMessageBox.Warning)
                x = msg.exec_()

        elif Brand == 'All' and Product_Family == '-' and Product_Name == '-':
            prod_in_db

        elif Brand != 'All' and Product_Family == '-' and Product_Name == '-':
            prod_in_db = prod_in_db[(prod_in_db['Brand'] == Brand)].reset_index(drop=True)
            
        elif Product_Family != '-' and Product_Name == '-':
            prod_in_db = prod_in_db[(prod_in_db['Product_group'] == Product_Family)].reset_index(drop=True)

        elif Product_Name != '-':
            prod_in_db = prod_in_db[(prod_in_db['Product_Name'] == Product_Name)].reset_index(drop=True)

        headers = prod_in_db.columns.values.tolist()
        
        self.table.setColumnCount(len(headers))
        self.table.setHorizontalHeaderLabels(headers)
        self.table.setColumnCount(len(prod_in_db.columns))
        self.table.setRowCount(len(prod_in_db.index))
        
        for i, row in prod_in_db.iterrows():
            self.table.setRowCount(self.table.rowCount() + 1)
            
            for j in range(self.table.columnCount()):
                self.table.setItem(i, j, QTableWidgetItem(str(row[j])))

Ответы (0 шт):