Return a nicely formatted HTML code string for the given dataframe.

    Arguments
    ---------
    df : pandas.DataFrame
        A dataframe object.
    percentage_columns : iterable
        A list of cloumn names to be displayed with a percentage sign.

    Returns
    -------
    str
        A nicely formatted string for the given dataframe.

def df_to_html(df, percentage_columns=None):  # pragma: no cover
    """Return a nicely formatted HTML code string for the given dataframe.

    Arguments
    ---------
    df : pandas.DataFrame
        A dataframe object.
    percentage_columns : iterable
        A list of cloumn names to be displayed with a percentage sign.

    Returns
    -------
    str
        A nicely formatted string for the given dataframe.
    """
    big_dataframe_setup()
    try:
        res = '<br><h2> {} </h2>'.format(df.name)
    except AttributeError:
        res = ''
    df.style.set_properties(**{'text-align': 'center'})
    res += df.to_html(formatters=_formatters_dict(
        input_df=df,
        percentage_columns=percentage_columns
    ))
    res += '<br>'
    return res