def drop_zeros(df, columns):
    """Drop rows that contain zeros in the specified column(s) for log plotting.
    
    Drop zeros and convert specified column(s) to floats.

    Parameters
    ----------
    df: a pandas DataFrame
    columns: str or list-like
        column name(s) from which to drop zeros

    Returns
    -------
    A modified dataframe.
    """

    # don't modify in place
    df = df.copy()

    if type(columns) == str:
        columns = [columns]

    for column in columns:
        df = df.astype({column: float})
        zeros = df.loc[df[column] == 0, :]
        df = df.drop(axis=0, index=zeros.index).reset_index(drop=True)

    return df