def append_diffs(df, base_col, offsets, group_col='player_id'):
    """ 
    Calculate difference between consecutive rows with a given lag offset
    :param df: Input DataFrame
    :param base_col: Name of column to calculate difference
    :param offsets: List of integer offsets (number of rows to lag)
    :param group_col: Column to group on prior to lag calculation
    :returns: Input DataFrame with {base_col}_diff{offset}_ft column appended
    """
    df = df.copy().sort_values(['player_id','gw']) # guarantee correct order 
    for offset in offsets:
        diff_col = f"{base_col}_diff{offset}_ft"
        df[diff_col] = df.groupby(group_col)[base_col].shift(offset).diff(1) 
    return df