ClassBalance

Source code in LabeLMaker/utils/class_balance.py
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
class ClassBalance:
    def __init__(self, df: pd.DataFrame, class_column: str) -> None:
        """
        Initializes the ClassBalance with a DataFrame and class column name.

        Parameters:
            df (pd.DataFrame): DataFrame containing the class column.
            class_column (str): Name of the class column.
        """
        self.df = df
        self.class_column = class_column
        self.balance_df: Optional[pd.DataFrame] = None

    def compute_balance(self) -> pd.DataFrame:
        """
        Computes class balance.

        Returns:
            pd.DataFrame: DataFrame containing counts and percentages of each class.
        """
        counts = self.df[self.class_column].value_counts()
        percentages = (counts / len(self.df)) * 100
        self.balance_df = pd.DataFrame({"Count": counts, "Percentage": percentages})
        return self.balance_df

    def display_balance(self) -> None:
        """
        Displays class balance.

        Raises:
            ValueError: If balance data has not been computed.
        """
        if self.balance_df is None:
            raise ValueError("Balance data not computed. Call compute_balance() first.")
        print(f"=== Class Balance for '{self.class_column}' ===")
        print(self.balance_df)

__init__(df, class_column)

Initializes the ClassBalance with a DataFrame and class column name.

Parameters:
  • df (DataFrame) –

    DataFrame containing the class column.

  • class_column (str) –

    Name of the class column.

Source code in LabeLMaker/utils/class_balance.py
 7
 8
 9
10
11
12
13
14
15
16
17
def __init__(self, df: pd.DataFrame, class_column: str) -> None:
    """
    Initializes the ClassBalance with a DataFrame and class column name.

    Parameters:
        df (pd.DataFrame): DataFrame containing the class column.
        class_column (str): Name of the class column.
    """
    self.df = df
    self.class_column = class_column
    self.balance_df: Optional[pd.DataFrame] = None

compute_balance()

Computes class balance.

Returns:
  • DataFrame

    pd.DataFrame: DataFrame containing counts and percentages of each class.

Source code in LabeLMaker/utils/class_balance.py
19
20
21
22
23
24
25
26
27
28
29
def compute_balance(self) -> pd.DataFrame:
    """
    Computes class balance.

    Returns:
        pd.DataFrame: DataFrame containing counts and percentages of each class.
    """
    counts = self.df[self.class_column].value_counts()
    percentages = (counts / len(self.df)) * 100
    self.balance_df = pd.DataFrame({"Count": counts, "Percentage": percentages})
    return self.balance_df

display_balance()

Displays class balance.

Raises:
  • ValueError

    If balance data has not been computed.

Source code in LabeLMaker/utils/class_balance.py
31
32
33
34
35
36
37
38
39
40
41
def display_balance(self) -> None:
    """
    Displays class balance.

    Raises:
        ValueError: If balance data has not been computed.
    """
    if self.balance_df is None:
        raise ValueError("Balance data not computed. Call compute_balance() first.")
    print(f"=== Class Balance for '{self.class_column}' ===")
    print(self.balance_df)