def smart_scrub(df,col_name,error_rate = 0):
    """ Scrubs from the front and back of an 'object' column in a DataFrame
    until the scrub would semantically alter the contents of the column. If only a 
    subset of the elements in the column are scrubbed, then a boolean array indicating which
    elements have been scrubbed is appended to the dataframe. Returns a tuple of the strings removed
    from the front and back of the elements
    df - DataFrame
        DataFrame to scrub
    col_name - string
        Name of column to scrub
    error_rate - number, default 0
        The maximum amount of values this function can ignore while scrubbing, expressed as a
        fraction of the total amount of rows in the dataframe. 
    """
    scrubf = smart_scrubf(df,col_name,error_rate)
    scrubb = smart_scrubb(df,col_name,error_rate)
    return (scrubf, scrubb)
Scrubs from the front and back of an 'object' column in a DataFrame
    until the scrub would semantically alter the contents of the column. If only a 
    subset of the elements in the column are scrubbed, then a boolean array indicating which
    elements have been scrubbed is appended to the dataframe. Returns a tuple of the strings removed
    from the front and back of the elements
    df - DataFrame
        DataFrame to scrub
    col_name - string
        Name of column to scrub
    error_rate - number, default 0
        The maximum amount of values this function can ignore while scrubbing, expressed as a
        fraction of the total amount of rows in the dataframe.