def concatenate_train_test_datasets_pd_Dataframes(X_train_df, X_test_df,
                                                  y_train_se, y_test_se):
    """Concatenates train and test datasets

    Args:
        X_train_df: Pandas DataFrame
        X_test_df: Pandas DataFrame
        y_train_se: Pandas Series
        y_test_se: Pandas Series

    Returns:
        Concatenated X and y
    """

    # X: matrix of size (num_examples, num_features)
    # y: vector of class labels
    if X_train_df is not None:
        X_df = X_train_df
        y_se = y_train_se

        if X_test_df is not None:
            X_df = X_train_df.append(X_test_df, ignore_index=True)
            y_se = y_train_se.append(y_test_se, ignore_index=True)
    else:
        # X_test_df is not None
        X_df = X_test_df
        y_se = y_test_se

    return X_df, y_se