Spaces:
Sleeping
Sleeping
James McCool
commited on
Commit
·
f8485d4
1
Parent(s):
1d2969e
Add create_position_export_dict function in app.py to generate position-specific export dictionaries from CSV files, enhancing player data handling and mapping in export functionality.
Browse files
app.py
CHANGED
|
@@ -32,6 +32,42 @@ stacking_sports = ['MLB', 'NHL', 'NFL', 'LOL']
|
|
| 32 |
player_wrong_names_mlb = ['Enrique Hernandez', 'Joseph Cantillo', 'Mike Soroka', 'Jakob Bauers', 'Temi Fágbénlé']
|
| 33 |
player_right_names_mlb = ['Kike Hernandez', 'Joey Cantillo', 'Michael Soroka', 'Jake Bauers', 'Temi Fagbenle']
|
| 34 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 35 |
with st.container():
|
| 36 |
|
| 37 |
col1, col2, col3, col4 = st.columns(4)
|
|
@@ -1549,7 +1585,9 @@ with tab2:
|
|
| 1549 |
|
| 1550 |
for col in st.session_state['export_file'].columns:
|
| 1551 |
if col not in excluded_cols:
|
| 1552 |
-
|
|
|
|
|
|
|
| 1553 |
|
| 1554 |
if 'export_file' in st.session_state:
|
| 1555 |
download_port, merge_port, partial_col, clear_export, blank_export_col = st.columns([1, 1, 1, 1, 8])
|
|
|
|
| 32 |
player_wrong_names_mlb = ['Enrique Hernandez', 'Joseph Cantillo', 'Mike Soroka', 'Jakob Bauers', 'Temi Fágbénlé']
|
| 33 |
player_right_names_mlb = ['Kike Hernandez', 'Joey Cantillo', 'Michael Soroka', 'Jake Bauers', 'Temi Fagbenle']
|
| 34 |
|
| 35 |
+
def create_position_export_dict(column_name, csv_file):
|
| 36 |
+
"""
|
| 37 |
+
Create a position-specific export dictionary based on the column name.
|
| 38 |
+
Strips numbers from column names to get the position (e.g., 'SP1' -> 'SP', 'G2' -> 'G')
|
| 39 |
+
"""
|
| 40 |
+
try:
|
| 41 |
+
# Remove any numbers from the column name to get the position
|
| 42 |
+
import re
|
| 43 |
+
position_filter = re.sub(r'\d+', '', column_name)
|
| 44 |
+
|
| 45 |
+
# Filter CSV file by position
|
| 46 |
+
if 'Position' in csv_file.columns:
|
| 47 |
+
filtered_df = csv_file[
|
| 48 |
+
csv_file['Position'].str.contains(position_filter, na=False, regex=False)
|
| 49 |
+
]
|
| 50 |
+
else:
|
| 51 |
+
# Fallback to all players if no position column found
|
| 52 |
+
filtered_df = csv_file
|
| 53 |
+
|
| 54 |
+
# Create the export dictionary for this position
|
| 55 |
+
|
| 56 |
+
try:
|
| 57 |
+
filtered_df = filtered_df.sort_values(by='Salary', ascending=False).drop_duplicates(subset=['Name'])
|
| 58 |
+
return dict(zip(filtered_df['Name'], filtered_df['Name + ID']))
|
| 59 |
+
except:
|
| 60 |
+
try:
|
| 61 |
+
filtered_df = filtered_df.sort_values(by='Salary', ascending=False).drop_duplicates(subset=['Nickname'])
|
| 62 |
+
return dict(zip(filtered_df['Nickname'], filtered_df['Id']))
|
| 63 |
+
except:
|
| 64 |
+
# Final fallback
|
| 65 |
+
return {}
|
| 66 |
+
|
| 67 |
+
except Exception as e:
|
| 68 |
+
st.error(f"Error creating position export dict for {column_name}: {str(e)}")
|
| 69 |
+
return {}
|
| 70 |
+
|
| 71 |
with st.container():
|
| 72 |
|
| 73 |
col1, col2, col3, col4 = st.columns(4)
|
|
|
|
| 1585 |
|
| 1586 |
for col in st.session_state['export_file'].columns:
|
| 1587 |
if col not in excluded_cols:
|
| 1588 |
+
# Create position-specific export dictionary on the fly
|
| 1589 |
+
position_dict = create_position_export_dict(col, st.session_state['csv_file'])
|
| 1590 |
+
st.session_state['export_file'][col] = st.session_state['export_file'][col].map(position_dict)
|
| 1591 |
|
| 1592 |
if 'export_file' in st.session_state:
|
| 1593 |
download_port, merge_port, partial_col, clear_export, blank_export_col = st.columns([1, 1, 1, 1, 8])
|