def test_has_columns(): df_1 = pd.DataFrame(dict(a=[1, 2, 3])) df_2 = pd.DataFrame(dict(b=[7, 8, 9], a=[1, 2, 3])) assert has_columns(df_1, ["a"]) assert has_columns(df_2, ["a"]) assert has_columns(df_2, ["a", "b"]) assert not has_columns(df_2, ["a", "b", "c"])
def test_has_columns(): df_1 = pd.DataFrame(dict(a=[1, 2, 3])) df_2 = pd.DataFrame(dict(b=[7, 8, 9], a=[1, 2, 3])) assert has_columns(df_1, ['a']) assert has_columns(df_2, ['a']) assert has_columns(df_2, ['a', 'b']) assert not has_columns(df_2, ['a', 'b', 'c'])
def check_column_dtypes_wrapper( rating_true, rating_pred, col_user=DEFAULT_USER_COL, col_item=DEFAULT_ITEM_COL, col_rating=DEFAULT_RATING_COL, col_prediction=DEFAULT_PREDICTION_COL, *args, **kwargs ): """Check columns of DataFrame inputs Args: rating_true (pd.DataFrame): True data rating_pred (pd.DataFrame): Predicted data col_user (str): column name for user col_item (str): column name for item col_rating (str): column name for rating col_prediction (str): column name for prediction """ if not has_columns(rating_true, [col_user, col_item, col_rating]): raise ValueError("Missing columns in true rating DataFrame") if not has_columns(rating_pred, [col_user, col_item, col_prediction]): raise ValueError("Missing columns in predicted rating DataFrame") if not has_same_base_dtype( rating_true, rating_pred, columns=[col_user, col_item] ): raise ValueError("Columns in provided DataFrames are not the same datatype") return func( rating_true=rating_true, rating_pred=rating_pred, col_user=col_user, col_item=col_item, col_rating=col_rating, col_prediction=col_prediction, *args, **kwargs )