James McCool
Refactor clean_player_name function in load_file.py
faff605
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