Spaces:
Runtime error
Runtime error
import pandas as pd | |
import numpy as np | |
import streamlit as st | |
# import glob | |
# import yaml | |
from pathlib import Path | |
from collections import defaultdict | |
######################################### | |
# Helpers Functions | |
def filter_by_1col(df, col_name, query, exact_flag=False): | |
def check_valid_value(query, string, exact_flag=False): | |
if exact_flag: | |
if query.lower() == string.lower(): | |
return True | |
elif query.lower() in string.lower(): | |
return True | |
return False | |
ok_flag_list = [] | |
assert col_name in df.columns, "col_name must be valid" | |
for i, s in enumerate(df[col_name]): | |
if isinstance(s, list): | |
for s2 in s: | |
flag = check_valid_value(query, s2, exact_flag=exact_flag) | |
if flag: break | |
else: | |
flag = check_valid_value(query, s, exact_flag=exact_flag) | |
ok_flag_list.append(flag) | |
assert len(ok_flag_list) == len(df) | |
return np.array(ok_flag_list) | |
def display_image(url, scale=0.5): | |
from urllib.request import urlopen | |
from PIL import Image | |
image = Image.open(urlopen(url)) | |
st.image(image.resize(( int(image.width * scale), int(image.height * scale)))) | |
def display_heroes_from_df(df): | |
display_cols = ['name', 'color', 'star', 'class', 'speed', 'power', 'attack', 'defense', 'health', 'types', 'source', 'family'] | |
st.dataframe(df[display_cols]) | |
for i in range(len(df)): | |
url = df['image'].values[i] | |
display_image(url) | |
st.write(df['skill'].values[i]) | |
for sp in df['effects'].values[i]: | |
st.write(sp) | |
######################################### | |
df = pd.read_csv('heroes_ep.csv') | |
idx_all = [] | |
idx_all.append(filter_by_1col(df, 'types', 'hit 3')) | |
idx_all.append(filter_by_1col(df, 'effects', 'dispel')) | |
idx_all.append(filter_by_1col(df, 'speed', 'fast', exact_flag=False)) | |
df2 = df[np.all(idx_all,axis=0)] | |
display_heroes_from_df(df2.sort_values("power", ascending=False)) |