def split_dataset(df, threshold=0.25):
    """ Splits data into two subsets based on the missing values per row.

    Args:
    - df (DataFrame): DataFrame to be split
    - threshold (float): threshold as decision criteria for splitting

    Returns:
    - DataFrame: DataFrame with a smaller percentage of missing values than the threshold 
    - DataFrame: DataFrame with a higher percentage of missing values than the threshold
    """
    nans_per_row = df.isnull().sum(axis=1)
    above_th = df[ nans_per_row / df.shape[1] <= threshold]
    below_th = df[ nans_per_row / df.shape[1] > threshold]

    return above_th, below_th