def split_into_X_and_Y(df_xy_name, label_selection = 'queue_count_binned'):
    """Separate the features (X) and the labels (Y). The default label selection (Y) is queue_count_binned. 
    However, you could use queue_count_max (not binned) or queue_indicator for the classifier instead."""
     # preparing X and y
    col_lst = ['queue_count_max', 'queue_len_max', 'queue_indicator', 'queue_count_binned','time']
    X = df_xy_name.loc[:,~df_xy_name.columns.isin(col_lst)] #.to_numpy()
    #print(X.shape, "shape of features X")
    y = df_xy_name[label_selection] #.to_numpy()
    #print(y.shape, "shape of labels y")
    return X, y