i have a problem in this code:

i have this class called filters that filter a table from a rielaborated excel file:
import pandas as pd
class Filters:
def init(self, df):
self.df = df


def filter_pagamenti(self, stato):
    if stato not in ["PAGATA", "IN PARTE", "NON PAGATA"]:
        raise ValueError("Stato del pagamento non valido.")        
    return self.df[self.df["Stato Pagamento"].str.upper() == stato]
i show this table in this class:
from PyQt5.QtWidgets import (
QWidget, QVBoxLayout, QTableWidget, QTableWidgetItem, QPushButton,
QHBoxLayout, QLabel, QFrame, QScrollArea, QApplication, QToolButton, QMenu
)
from PyQt5.QtCore import Qt, QPropertyAnimation, QEasingCurve, QRect
from PyQt5.QtGui import QColor
from excel_handler.filters import Filters

class ReportScreen(QWidget):
def init(self, report_df):
super().init()
self.setWindowTitle("ExcelAnalyzerApp - Report")
self.setGeometry(100, 100, 1000, 600)
self.setStyleSheet("background-color: white;")


    self.original_df = report_df  # Salva il DataFrame originale
    self.report_df = report_df  # Copia che verrà filtrata

    # Inizializza la classe Filters con il DataFrame originale
    self.filters = Filters(self.original_df)

    self.main_layout = QHBoxLayout(self)
    self.sidebar_visible = True

    # Creazione della barra laterale
    self.sidebar = QFrame(self)
    self.sidebar.setFixedWidth(120)
    self.sidebar_layout = QVBoxLayout(self.sidebar)
    self.sidebar.setStyleSheet("""
        background-color: #4CAF50;
        border-top-right-radius: 15px;
        border-bottom-right-radius: 15px;
    """)

    # Aggiungi etichette e pulsanti alla barra laterale
    self.add_sidebar_label("Filtri")
    self.add_sidebar_label("Operatori")
    self.add_sidebar_label("Creditori")

    self.main_layout.addWidget(self.sidebar)
    
    # Pulsante di toggle per la barra laterale
    self.toggle_button = QPushButton("☰", self)
    self.toggle_button.setFixedSize(30, 30)
    self.toggle_button.setStyleSheet("""
        background-color: #4CAF50;
        color: white;
        font-size: 18px;
        border-radius: 15px;
    """)
    self.toggle_button.clicked.connect(self.toggle_sidebar)

    # Widget centrale
    self.central_widget = QWidget(self)
    self.central_layout = QVBoxLayout(self.central_widget)

    # Posizionamento del pulsante di toggle
    self.central_layout.addWidget(self.toggle_button, alignment=Qt.AlignLeft)
    
    # Pagine e tabella
    self.current_page = 0
    self.rows_per_page = 100
    self.table_container = QWidget()
    self.table_layout = QVBoxLayout(self.table_container)
    self.table = QTableWidget(self)
    self.table_layout.addWidget(self.table)

    # Navigazione
    self.navigation_layout = QHBoxLayout()
    self.prev_button = QPushButton("Indietro")
    self.prev_button.setCursor(Qt.PointingHandCursor)
    self.prev_button.clicked.connect(self.prev_page)
    self.navigation_layout.addWidget(self.prev_button)
    self.prev_button.setStyleSheet(
        """
        QPushButton {
            background-color: #4CAF50;
            color: white;
            padding: 8px 16px;
            font-size: 12px;
            font-weight: bold;
            border-radius: 10px;
            min-width: 80px;
        }
        QPushButton:hover {
            background-color: #45a049;
        }
        """
    )
    self.next_button = QPushButton("Avanti")
    self.next_button.setCursor(Qt.PointingHandCursor)
    self.next_button.clicked.connect(self.next_page)
    self.navigation_layout.addWidget(self.next_button)
    self.next_button.setStyleSheet(
        """
        QPushButton {
            background-color: #4CAF50;
            color: white;
            padding: 8px 16px;
            font-size: 12px;
            font-weight: bold;
            border-radius: 10px;
            min-width: 80px;
        }
        QPushButton:hover {
            background-color: #45a049;
        }
        """
    )
    self.table_layout.addLayout(self.navigation_layout)

    # Scrolling area
    self.scroll_area = QScrollArea(self)
    self.scroll_area.setWidgetResizable(True)
    self.scroll_area.setWidget(self.table_container)
    self.central_layout.addWidget(self.scroll_area)

    self.main_layout.addWidget(self.central_widget)

    # Animazione
    self.animation = QPropertyAnimation(self.sidebar, b"geometry")
    self.animation.setDuration(300)
    self.animation.setEasingCurve(QEasingCurve.InOutQuad)

    self.update_table()

def add_sidebar_label(self, text):
    if text == "Filtri":
        dropdown_button = QToolButton(self)
        dropdown_button.setText(text)
        dropdown_button.setStyleSheet("color: white; font-weight: bold; margin-top: 10px; font-size: 18px; padding-right: 10px;")
        dropdown_button.setPopupMode(QToolButton.InstantPopup)
        dropdown_button.setCursor(Qt.PointingHandCursor)
        
        dropdown_menu = QMenu(dropdown_button)
        dropdown_menu.setStyleSheet("background-color: #4CAF50; color: white; font-weight: bold;")
        
        dropdown_menu.addAction("Tutti", self.reset_filter)  # Opzione per mostrare tutti
        dropdown_menu.addAction("Pagate", lambda: self.apply_filter("PAGATA"))
        dropdown_menu.addAction("In Parte", lambda: self.apply_filter("IN PARTE"))
        dropdown_menu.addAction("Non Pagate", lambda: self.apply_filter("NON PAGATA"))
        
        dropdown_button.setMenu(dropdown_menu)
        self.sidebar_layout.addWidget(dropdown_button)
    else:
        label = QLabel(text, self)
        label.setStyleSheet("color: white; font-weight: bold; margin-top: 10px; font-size: 18px;")
        self.sidebar_layout.addWidget(label)
        self.add_separator()    

def add_separator(self):
    separator = QFrame(self)
    separator.setFrameShape(QFrame.HLine)
    separator.setFrameShadow(QFrame.Sunken)
    separator.setStyleSheet("color: white;")
    self.sidebar_layout.addWidget(separator)

def toggle_sidebar(self):
    if self.sidebar_visible:
        self.animation.setStartValue(QRect(0, 0, self.sidebar.width(), self.sidebar.height()))
        self.animation.setEndValue(QRect(-self.sidebar.width(), 0, self.sidebar.width(), self.sidebar.height()))
    else:
        self.animation.setStartValue(QRect(-self.sidebar.width(), 0, self.sidebar.width(), self.sidebar.height()))
        self.animation.setEndValue(QRect(0, 0, self.sidebar.width(), self.sidebar.height()))
    self.sidebar_visible = not self.sidebar_visible
    self.animation.start()

def apply_filter(self, stato):
    stato = stato.upper()
    self.report_df = self.filters.filter_pagamenti(stato)
    self.current_page = 0
    self.update_table()

def reset_filter(self):
    self.report_df = self.original_df
    self.current_page = 0
    self.update_table()

def update_table(self):
    start_row = self.current_page * self.rows_per_page
    end_row = start_row + self.rows_per_page
    page_df = self.report_df.iloc[start_row:end_row]
    self.table.clearContents()
    self.table.setRowCount(page_df.shape[0])
    self.table.setColumnCount(page_df.shape[1])
    self.table.setHorizontalHeaderLabels(page_df.columns)

    for i, row in page_df.iterrows():
        for j, value in enumerate(row):
            self.table.setItem(i - start_row, j, QTableWidgetItem(str(value)))

    self.prev_button.setEnabled(self.current_page > 0)
    self.next_button.setEnabled(end_row < len(self.report_df))

def next_page(self):
    if (self.current_page + 1) * self.rows_per_page < len(self.report_df):
        self.current_page += 1
        self.update_table()

def prev_page(self):
    if self.current_page > 0:
        self.current_page -= 1
        self.update_table()
when i try to select the filters "In Parte" and "Non pagate" the app creates the rispective tables but they are non filled with the records
please help me