import pandas as pd def create_quantile_table(streaming_table: pd.DataFrame) -> pd.DataFrame: """ Creates a table with quantiles appended by day after release. :param streaming_table: source table with streaming data :return: source table with three quantile columns - `50_pct`, `75_pct` and `100_pct` appended. """ df1 = streaming_table.groupby('date_diff').quantile(.5) df2 = streaming_table.groupby('date_diff').quantile(.75) df3 = streaming_table.groupby('date_diff').quantile(1) _res = df1.merge(df2, on="date_diff").merge(df3, on="date_diff") _res.rename(columns={"streams_x": "50_pct", "streams_y": "75_pct", "streams": "100_pct"}) return streaming_table.merge(_res, on="date_diff")