def num_authors(df, period: str):
    """ Number of authors in a given time period. 

    :param df: pd.DataFrame, base table
    :param period: str, 'Y', year
    :return: df aggregated by period
    :rtype: pd.DataFrame
    """
    per = df.ts.dt.to_period(period)
    cols = ['name', 'owner_name', 'project_name']
    grp = [per, 'owner_name', 'project_name']
    result = df[cols].groupby(grp).count()
    result.columns = ['num_authors']
    result = result.reset_index()
    return result
