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])))
