Update app.py
Browse files
app.py
CHANGED
|
@@ -686,6 +686,7 @@ def server(input, output, session):
|
|
| 686 |
|
| 687 |
# Define the columns to subtract
|
| 688 |
cols_to_subtract = [
|
|
|
|
| 689 |
("start_speed", "start_speed_old"),
|
| 690 |
("max_start_speed", "max_start_speed_old"),
|
| 691 |
("ivb", "ivb_old"),
|
|
@@ -720,19 +721,44 @@ def server(input, output, session):
|
|
| 720 |
])
|
| 721 |
|
| 722 |
|
| 723 |
-
|
| 724 |
-
|
| 725 |
-
|
| 726 |
-
|
| 727 |
-
|
| 728 |
-
|
|
|
|
| 729 |
df_merge = df_merge.with_columns([
|
| 730 |
-
(
|
| 731 |
-
.
|
| 732 |
-
.
|
| 733 |
-
.
|
| 734 |
-
|
| 735 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 736 |
|
| 737 |
|
| 738 |
columns = [
|
|
|
|
| 686 |
|
| 687 |
# Define the columns to subtract
|
| 688 |
cols_to_subtract = [
|
| 689 |
+
|
| 690 |
("start_speed", "start_speed_old"),
|
| 691 |
("max_start_speed", "max_start_speed_old"),
|
| 692 |
("ivb", "ivb_old"),
|
|
|
|
| 721 |
])
|
| 722 |
|
| 723 |
|
| 724 |
+
cols_to_subtract_percent = [
|
| 725 |
+
("pitch_percent", "pitch_percent_old"),
|
| 726 |
+
("rhh_percent", "rhh_percent_old"),
|
| 727 |
+
("lhh_percent", "lhh_percent_old"),
|
| 728 |
+
]
|
| 729 |
+
|
| 730 |
+
|
| 731 |
df_merge = df_merge.with_columns([
|
| 732 |
+
# Step 1: Create _diff columns with the default value (e.g., 80) if old is null
|
| 733 |
+
pl.when(pl.col(old).is_null())
|
| 734 |
+
.then(pl.lit(10000)) # If old is null, assign 80 as the default
|
| 735 |
+
.otherwise(pl.col(new) - pl.col(old)) # Otherwise subtract old from new
|
| 736 |
+
.alias(new + "_diff")
|
| 737 |
+
for new, old in cols_to_subtract_percent
|
| 738 |
+
])
|
| 739 |
+
|
| 740 |
+
# percent_cols = ['pitch_percent', 'rhh_percent', 'lhh_percent']
|
| 741 |
+
|
| 742 |
+
# Step 2: Format the columns with (value (+diff)) - exclude brackets if diff is 80
|
| 743 |
+
df_merge = df_merge.with_columns([
|
| 744 |
+
pl.when(pl.col(new + "_diff").eq(10000)) # If diff is 80, no need to include brackets
|
| 745 |
+
.then(
|
| 746 |
+
(pl.col(new)*100).round(1).map_elements(lambda x: f"{x:.1f}%").cast(pl.Utf8) +
|
| 747 |
+
"\n(" +
|
| 748 |
+
(pl.col(new)*100).round(1)
|
| 749 |
+
.map_elements(lambda x: f"{x:+.1f}%") +
|
| 750 |
+
")"
|
| 751 |
+
)
|
| 752 |
+
.otherwise(
|
| 753 |
+
(pl.col(new)*100).round(1).map_elements(lambda x: f"{x:.1f}%").cast(pl.Utf8) +
|
| 754 |
+
"\n(" +
|
| 755 |
+
(pl.col(new + "_diff")*100).round(1)
|
| 756 |
+
.map_elements(lambda x: f"{x:+.1f}%") +
|
| 757 |
+
")"
|
| 758 |
+
).alias(new + "_formatted")
|
| 759 |
+
for new, _ in cols_to_subtract_percent
|
| 760 |
+
])
|
| 761 |
+
|
| 762 |
|
| 763 |
|
| 764 |
columns = [
|