Update app.py
Browse files
app.py
CHANGED
@@ -725,6 +725,21 @@ def server(input, output, session):
|
|
725 |
pl.col("start_speed").count().alias("pitcher_total")
|
726 |
)
|
727 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
728 |
df_spring_group = df_spring_stuff.group_by(['pitcher_id', 'pitcher_name', 'pitch_type']).agg([
|
729 |
pl.col('start_speed').count().alias('count'),
|
730 |
pl.col('start_speed').mean().alias('start_speed'),
|
@@ -741,6 +756,7 @@ def server(input, output, session):
|
|
741 |
|
742 |
# Join total pitches per pitcher to the grouped DataFrame on pitcher_id
|
743 |
df_spring_group = df_spring_group.join(df_pitcher_totals, on=["pitcher_id"], how="left")
|
|
|
744 |
|
745 |
# Now calculate the pitch percent for each pitcher/pitch_type combination
|
746 |
df_spring_group = df_spring_group.with_columns(
|
@@ -749,8 +765,8 @@ def server(input, output, session):
|
|
749 |
|
750 |
# Optionally, if you want the percentage of left/right-handed batters within the group:
|
751 |
df_spring_group = df_spring_group.with_columns([
|
752 |
-
(pl.col("rhh_count") / pl.col("
|
753 |
-
(pl.col("lhh_count") / pl.col("
|
754 |
])
|
755 |
|
756 |
df_merge = df_spring_group.join(df_year_old_group,on=['pitcher_id','pitch_type'],how='left',suffix='_old')
|
|
|
725 |
pl.col("start_speed").count().alias("pitcher_total")
|
726 |
)
|
727 |
|
728 |
+
df_pitcher_totals_hands = (
|
729 |
+
df_spring_stuff
|
730 |
+
.group_by(["pitcher_id", "batter_hand"])
|
731 |
+
.agg(pl.col("start_speed").count().alias("pitcher_total"))
|
732 |
+
.pivot(
|
733 |
+
values="pitcher_total",
|
734 |
+
index="pitcher_id",
|
735 |
+
columns="batter_hand",
|
736 |
+
aggregate_function="first"
|
737 |
+
)
|
738 |
+
.rename({"L": "pitcher_total_left", "R": "pitcher_total_right"})
|
739 |
+
.fill_null(0) # Fill missing values with 0 if some pitchers don't face both hands
|
740 |
+
)
|
741 |
+
|
742 |
+
|
743 |
df_spring_group = df_spring_stuff.group_by(['pitcher_id', 'pitcher_name', 'pitch_type']).agg([
|
744 |
pl.col('start_speed').count().alias('count'),
|
745 |
pl.col('start_speed').mean().alias('start_speed'),
|
|
|
756 |
|
757 |
# Join total pitches per pitcher to the grouped DataFrame on pitcher_id
|
758 |
df_spring_group = df_spring_group.join(df_pitcher_totals, on=["pitcher_id"], how="left")
|
759 |
+
df_spring_group = df_spring_group.join(df_pitcher_totals_hands, on=["pitcher_id"], how="left")
|
760 |
|
761 |
# Now calculate the pitch percent for each pitcher/pitch_type combination
|
762 |
df_spring_group = df_spring_group.with_columns(
|
|
|
765 |
|
766 |
# Optionally, if you want the percentage of left/right-handed batters within the group:
|
767 |
df_spring_group = df_spring_group.with_columns([
|
768 |
+
(pl.col("rhh_count") / pl.col("pitcher_total_right")).alias("rhh_percent"),
|
769 |
+
(pl.col("lhh_count") / pl.col("pitcher_total_left")).alias("lhh_percent")
|
770 |
])
|
771 |
|
772 |
df_merge = df_spring_group.join(df_year_old_group,on=['pitcher_id','pitch_type'],how='left',suffix='_old')
|