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
raw
history blame
1.29 kB
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