Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -512,7 +512,9 @@ with tab1:
|
|
| 512 |
file_name='MLB_consim_export.csv',
|
| 513 |
mime='text/csv',
|
| 514 |
)
|
| 515 |
-
|
|
|
|
|
|
|
| 516 |
if 'Sim_Winner_Display' in st.session_state:
|
| 517 |
# Create a new dataframe with summary statistics
|
| 518 |
summary_df = pd.DataFrame({
|
|
@@ -555,6 +557,42 @@ with tab1:
|
|
| 555 |
'Fantasy': '{:.2f}',
|
| 556 |
'GPP_Proj': '{:.2f}'
|
| 557 |
}).background_gradient(cmap='RdYlGn', axis=0, subset=['Salary', 'Proj', 'Own', 'Fantasy', 'GPP_Proj']), use_container_width=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 558 |
with st.container():
|
| 559 |
tab1, tab2, tab3, tab4, tab5, tab6, tab7, tab8, tab9 = st.tabs(['Overall Exposures', 'QB Exposures', 'RB-WR-TE Exposures', 'RB Exposures', 'WR Exposures', 'TE Exposures', 'FLEX Exposures', 'DST Exposures', 'Team Exposures'])
|
| 560 |
with tab1:
|
|
|
|
| 512 |
file_name='MLB_consim_export.csv',
|
| 513 |
mime='text/csv',
|
| 514 |
)
|
| 515 |
+
tab1, tab2 = st.tabs(['Winning Frame Statistics', 'Flex Exposure Statistics'])
|
| 516 |
+
|
| 517 |
+
with tab1:
|
| 518 |
if 'Sim_Winner_Display' in st.session_state:
|
| 519 |
# Create a new dataframe with summary statistics
|
| 520 |
summary_df = pd.DataFrame({
|
|
|
|
| 557 |
'Fantasy': '{:.2f}',
|
| 558 |
'GPP_Proj': '{:.2f}'
|
| 559 |
}).background_gradient(cmap='RdYlGn', axis=0, subset=['Salary', 'Proj', 'Own', 'Fantasy', 'GPP_Proj']), use_container_width=True)
|
| 560 |
+
with tab2:
|
| 561 |
+
if 'Sim_Winner_Display' in st.session_state and 'maps_dict' in st.session_state:
|
| 562 |
+
# Apply position mapping to FLEX column
|
| 563 |
+
flex_positions = st.session_state.Sim_Winner_Display['FLEX'].map(st.session_state.maps_dict['Pos_map'])
|
| 564 |
+
|
| 565 |
+
# Count occurrences of each position in FLEX
|
| 566 |
+
flex_counts = flex_positions.value_counts()
|
| 567 |
+
|
| 568 |
+
# Calculate average statistics for each FLEX position
|
| 569 |
+
flex_stats = st.session_state.Sim_Winner_Display.groupby(flex_positions).agg({
|
| 570 |
+
'Proj': 'mean',
|
| 571 |
+
'Own': 'mean',
|
| 572 |
+
'Fantasy': 'mean',
|
| 573 |
+
'GPP_Proj': 'mean'
|
| 574 |
+
})
|
| 575 |
+
|
| 576 |
+
# Combine counts and average statistics
|
| 577 |
+
flex_summary = pd.concat([flex_counts, flex_stats], axis=1)
|
| 578 |
+
flex_summary.columns = ['Count', 'Avg Proj', 'Avg Own', 'Avg Fantasy', 'Avg GPP_Proj']
|
| 579 |
+
flex_summary = flex_summary.reset_index()
|
| 580 |
+
flex_summary.columns = ['Position', 'Count', 'Avg Proj', 'Avg Own', 'Avg Fantasy', 'Avg GPP_Proj']
|
| 581 |
+
|
| 582 |
+
# Display the summary dataframe
|
| 583 |
+
st.subheader("FLEX Position Statistics")
|
| 584 |
+
st.dataframe(flex_summary.style.format({
|
| 585 |
+
'Count': '{:.0f}',
|
| 586 |
+
'Avg Proj': '{:.2f}',
|
| 587 |
+
'Avg Fantasy': '{:.2f}',
|
| 588 |
+
'Avg GPP_Proj': '{:.2f}'
|
| 589 |
+
}).background_gradient(cmap='RdYlGn', axis=0, subset=['Count', 'Avg Proj', 'Avg Own', 'Avg Fantasy', 'Avg GPP_Proj']), use_container_width=True)
|
| 590 |
+
|
| 591 |
+
# Create a bar chart for FLEX position distribution
|
| 592 |
+
fig = px.bar(flex_summary, x='Position', y='Count', title='FLEX Position Distribution')
|
| 593 |
+
st.plotly_chart(fig, use_container_width=True)
|
| 594 |
+
else:
|
| 595 |
+
st.write("Simulation data or position mapping not available.")
|
| 596 |
with st.container():
|
| 597 |
tab1, tab2, tab3, tab4, tab5, tab6, tab7, tab8, tab9 = st.tabs(['Overall Exposures', 'QB Exposures', 'RB-WR-TE Exposures', 'RB Exposures', 'WR Exposures', 'TE Exposures', 'FLEX Exposures', 'DST Exposures', 'Team Exposures'])
|
| 598 |
with tab1:
|