new_column = df.groupby('L1', as_index=False).apply(lambda x: pd.
    expanding_sum(x.sort('L3', ascending=False)['L3']) / x['L3'].sum())
df['new'] = new_column.reset_index(level=0, drop=True)
Прикрепите вычисляемый столбец к существующему фрейму данных