import pandas as pd from zipfile import ZipFile from pathlib import Path from dateutil.parser import parse import datetime import re from math import isnan csv_data = {} reto_dir = Path("/home/serenitas/flint/retozip") for zip_f in reto_dir.iterdir(): if zip_f.name.endswith(".zip"): zip_file = ZipFile(zip_f) fname = zip_file.namelist()[2] df = pd.read_csv(zip_file.open(fname)) gross_exposure = pd.read_csv(zip_file.open(zip_file.namelist()[0])) try: if len(df.columns) == 3: date = parse(df.columns[2]).date() df = df.drop(columns=[df.columns[1]]) else: date = parse(df.columns[1]).date() except IndexError: print(zip_f.name) except Exception as e: breakpoint() continue if date.year < 2000: year = int(re.search("\d{4}", zip_f.name)[0]) date = datetime.date(year, date.month, date.day) try: gross_exposure = gross_exposure.set_index([gross_exposure.columns[0]]).loc[ "Gross Exposure" ][0] if "x" in str(gross_exposure): gross_exposure = float(gross_exposure.removesuffix("x")) * 100 try: gross_exposure = float(str(gross_exposure).removesuffix("%")) except: breakpoint() pass except KeyError: df = gross_exposure.set_index([gross_exposure.columns[0]]).to_dict() dictionary_values = df[[*df][0]] for k, v in dictionary_values.items(): if "ross H" in str(k): gross_exposure = v if "x" in str(gross_exposure): gross_exposure = float(gross_exposure.removesuffix("x")) * 100 try: gross_exposure = float(str(gross_exposure).removesuffix("%")) except: breakpoint() pass if isnan(gross_exposure): print(zip_f) pass # except: # breakpoint() # print(zip_f.name) csv_data[date] = gross_exposure pd.DataFrame.from_dict(csv_data, orient="index").to_csv( "/home/serenitas/flint/gross_exposure_returns.csv" ) print("hi")