in analysis/render.py [0:0]
def fmt_metric_table(df: pd.DataFrame) -> str:
"""Format a DataFrame of metric results as a markdown table"""
if df.empty:
return ""
control_variant = str(df["ControlVariant"].iloc[0])
def fmt_control_value(row: pd.Series):
return fmt_metric_value(row["ControlMetricValue"], row["MetricType"])
return (
pd.DataFrame(
{
"MetricId": df["MetricId"],
"Metric": df["MetricDisplayName"],
control_variant: df.apply(fmt_control_value, axis=1),
"TreatmentVariant": df["TreatmentVariant"],
"TreatmentBadge": df.apply(fmt_treatment_badge, axis=1),
}
)
.pivot(
index=["MetricId", "Metric", control_variant],
columns="TreatmentVariant",
values="TreatmentBadge",
)
.reset_index()
.drop(columns="MetricId")
.rename(columns=lambda x: x if x == "Metric" else x + " 💊")
.sort_values("Metric")
.to_markdown(index=False, colalign=("left", "right"))
)