Spaces:
Running
Running
Commit ·
0511d44
1
Parent(s): 22e2ea0
Simplify overview_by_order_status function
Browse files- Refactor overview_by_order_status to use COLUMN_TO_AGGFUNC constant
- Rename value_col parameter to column for consistency
- Remove redundant title setting in update_layout
- Update target in app.py to use "column" parameter name
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
app.py
CHANGED
|
@@ -115,7 +115,7 @@ overview_page = vm.Page(
|
|
| 115 |
targets=[
|
| 116 |
"region_bar_chart.value_col",
|
| 117 |
"category_bar_chart.value_col",
|
| 118 |
-
"order_status_pie_chart.
|
| 119 |
"month_line_chart.column",
|
| 120 |
"segment_bar_chart.value_col",
|
| 121 |
],
|
|
|
|
| 115 |
targets=[
|
| 116 |
"region_bar_chart.value_col",
|
| 117 |
"category_bar_chart.value_col",
|
| 118 |
+
"order_status_pie_chart.column",
|
| 119 |
"month_line_chart.column",
|
| 120 |
"segment_bar_chart.value_col",
|
| 121 |
],
|
charts.py
CHANGED
|
@@ -318,38 +318,20 @@ def overview_by_month(data_frame, column="Sales"):
|
|
| 318 |
|
| 319 |
|
| 320 |
@capture("graph")
|
| 321 |
-
def overview_by_order_status(data_frame,
|
| 322 |
-
|
| 323 |
-
if value_col == "Order ID":
|
| 324 |
-
status_metric = (
|
| 325 |
-
data_frame.groupby("Order Status", as_index=False)["Order ID"]
|
| 326 |
-
.nunique()
|
| 327 |
-
.rename(columns={"Order ID": "Orders"})
|
| 328 |
-
)
|
| 329 |
-
agg_col = "Orders"
|
| 330 |
-
elif value_col == "Customer ID":
|
| 331 |
-
status_metric = (
|
| 332 |
-
data_frame.groupby("Order Status", as_index=False)["Customer ID"]
|
| 333 |
-
.nunique()
|
| 334 |
-
.rename(columns={"Customer ID": "Customers"})
|
| 335 |
-
)
|
| 336 |
-
agg_col = "Customers"
|
| 337 |
-
else:
|
| 338 |
-
status_metric = data_frame.groupby("Order Status", as_index=False)[value_col].sum()
|
| 339 |
-
agg_col = value_col
|
| 340 |
|
| 341 |
fig = px.pie(
|
| 342 |
-
|
| 343 |
names="Order Status",
|
| 344 |
-
values=
|
| 345 |
color="Order Status",
|
| 346 |
-
title=f"{
|
| 347 |
color_discrete_map={"In Transit": PRIMARY_COLOR, "Processing": ORANGE_COLOR, "Delivered": GREEN_COLOR},
|
| 348 |
hole=0.6,
|
| 349 |
)
|
| 350 |
|
| 351 |
fig.update_layout(
|
| 352 |
-
title=f"{agg_col} | By Order Status",
|
| 353 |
legend={"yanchor": "bottom", "y": -0.2, "xanchor": "right", "orientation": "v"},
|
| 354 |
)
|
| 355 |
|
|
|
|
| 318 |
|
| 319 |
|
| 320 |
@capture("graph")
|
| 321 |
+
def overview_by_order_status(data_frame, column="Sales"):
|
| 322 |
+
grouped_df = data_frame.groupby("Order Status", as_index=False).agg({column: COLUMN_TO_AGGFUNC[column]})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 323 |
|
| 324 |
fig = px.pie(
|
| 325 |
+
grouped_df,
|
| 326 |
names="Order Status",
|
| 327 |
+
values=column,
|
| 328 |
color="Order Status",
|
| 329 |
+
title=f"{column} | By Order Status",
|
| 330 |
color_discrete_map={"In Transit": PRIMARY_COLOR, "Processing": ORANGE_COLOR, "Delivered": GREEN_COLOR},
|
| 331 |
hole=0.6,
|
| 332 |
)
|
| 333 |
|
| 334 |
fig.update_layout(
|
|
|
|
| 335 |
legend={"yanchor": "bottom", "y": -0.2, "xanchor": "right", "orientation": "v"},
|
| 336 |
)
|
| 337 |
|