Spaces:
Running
Running
# Important: run this script from the parent directory | |
# (the root directory in this repository) | |
# | |
# python3 list_scripts/8_add_other_fields.py | |
import json | |
import pandas as pd | |
import re | |
def add_other_fields(row: pd.DataFrame) -> pd.DataFrame: | |
print(f"{row['name']} | {row['oracle_id']}") | |
for index, card in enumerate(cards): | |
if card["identifiers"]["scryfallOracleId"] == row["oracle_id"]: | |
row["mv"] = card["manaValue"] | |
row["rarity"] = card["rarity"] | |
row["text"] = card["text"] if "text" in card else None | |
row["type"] = card["type"] | |
if "power" in card: | |
power = re.sub("[^0-9]", "", f"0{card['power']}") | |
row["power"] = int(power) | |
else: | |
row["power"] = None | |
if "toughness" in card: | |
toughness = re.sub("[^0-9]", "", f"0{card['toughness']}") | |
row["toughness"] = int(toughness) | |
else: | |
row["toughness"] = None | |
colors = card["colors"] | |
row["w"] = True if "W" in colors else False | |
row["u"] = True if "U" in colors else False | |
row["b"] = True if "B" in colors else False | |
row["r"] = True if "R" in colors else False | |
row["g"] = True if "G" in colors else False | |
row["c"] = True if len(colors) < 1 else False | |
return row | |
return row | |
middleschool_df = pd.read_csv("output/middleschool.csv") | |
with open("data/middleschool.json") as json_data: | |
cards = json.loads(json_data.read()) | |
middleschool_df = middleschool_df.apply(add_other_fields, axis=1) | |
middleschool_df["power"] = middleschool_df["power"].astype("Int64") | |
middleschool_df["toughness"] = middleschool_df["toughness"].astype("Int64") | |
middleschool_df.to_csv("output/middleschool_extra_fields.csv") | |
middleschool_df.to_json("output/middleschool_extra_fields.json") | |