James McCool
Enhance data handling in load_ss_file.py by replacing zeros with NaN and dropping rows with any NaN values. This improves data integrity for CSV and Excel file imports.
fb3a403
import streamlit as st | |
import numpy as np | |
import pandas as pd | |
import time | |
from rapidfuzz import process | |
import re | |
def load_ss_file(lineups, csv_file): | |
df = csv_file.copy() | |
try: | |
name_dict = dict(zip(df['ID'], df['Name'])) | |
except: | |
name_dict = dict(zip(df['Id'], df['Nickname'])) | |
# Now load and process the lineups file | |
try: | |
clean_name = re.sub(r' \(\d+\)', '', lineups.name) | |
print(clean_name) | |
print(lineups.name) | |
if clean_name.endswith('.csv'): | |
lineups_df = pd.read_csv(lineups) | |
lineups_df = lineups_df.replace(0, np.nan) | |
elif clean_name.endswith(('.xls', '.xlsx')): | |
lineups_df = pd.read_excel(lineups) | |
lineups_df = lineups_df.replace(0, np.nan) | |
else: | |
st.error('Please upload either a CSV or Excel file for lineups') | |
return None, None | |
lineups_df = lineups_df.dropna(how='any') | |
export_df = lineups_df.copy() | |
# Map the IDs to names | |
for col in lineups_df.columns: | |
lineups_df[col] = lineups_df[col].map(name_dict) | |
return export_df, lineups_df | |
except Exception as e: | |
st.error(f'Error loading lineups file: {str(e)}') | |
return None, None |