| import streamlit as st | |
| import numpy as np | |
| import pandas as pd | |
| import time | |
| from fuzzywuzzy import process | |
| def clean_player_name(name): | |
| # Handle colon case first (remove everything before colon) | |
| if ':' in name: | |
| name = name.split(':')[1].strip() | |
| # Handle parentheses case (remove everything after opening parenthesis) | |
| if '(' in name: | |
| name = name.split('(')[0].strip() | |
| return name | |
| def load_file(upload): | |
| if upload is not None: | |
| try: | |
| if upload.name.endswith('.csv'): | |
| df = pd.read_csv(upload) | |
| elif upload.name.endswith(('.xls', '.xlsx')): | |
| df = pd.read_excel(upload) | |
| else: | |
| st.error('Please upload either a CSV or Excel file') | |
| return None | |
| export_df = df.copy() | |
| for col in df.columns: | |
| if df[col].dtype == 'object': | |
| df[col] = df[col].apply(lambda x: clean_player_name(x) if isinstance(x, str) else x) | |
| return export_df, df | |
| except Exception as e: | |
| st.error(f'Error loading file: {str(e)}') | |
| return None | |
| return None |