def frequency(dataframe, column_name):
    """
    Gets the frequency of each unique value in a specified column.

    Args:
        dataframe (Pandas.DataFrame): The data that contains the column for the
                                      the frequency calculation
        column_name (string): Name of the column to calculate the frequency for

    Returns:
        Pandas.DataFrame: A new dataframe that has each unique value from the
                          specified column along with the percentage frequency,
                          the cumulative percentage, and the ccdf
    """

    out = dataframe[column_name].value_counts().to_frame()

    out.columns = ['frequency']
    out.index.name = column_name
    out.reset_index(inplace=True)
    out = out.sort_values(column_name)

    out['percentage'] = out['frequency'] / out['frequency'].sum()
    out['cumulative'] = out['frequency'].cumsum() / out['frequency'].sum()
    out['ccdf'] = 1 - out['cumulative']

    return out