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 |