import pandas as pd import numpy as np import os ROOT_PATH: str = os.path.join(os.path.dirname(__file__), '..', '..') def compare_balance_sheets(ticker_list: list): df_ret = pd.DataFrame(columns=['total_assets', 'current_assets', 'total_debt', 'current_debt']) for i, ticker in enumerate(ticker_list): assets_debt = pd.read_csv(ROOT_PATH + r'/Companies_Data/' + ticker + '_Data/' + ticker + '_balance_sheet_4Y+4Q.csv') selected_data = assets_debt def get_or_na(column: str): row = selected_data.iloc[-2] if column in row and not np.isnan(row[column]): return row[column] return 0 df_ret.loc[ticker, 'total_assets'] = get_or_na('TotalAssets') df_ret.loc[ticker, 'current_assets'] = get_or_na('CurrentAssets') df_ret.loc[ticker, 'total_debt'] = get_or_na('TotalDebt') df_ret.loc[ticker, 'current_debt'] = get_or_na('CurrentDebt') df_ret.loc[:, 'old_assets'] = df_ret['total_assets'].copy() - df_ret['current_assets'].copy() df_ret.loc[:, 'old_debt'] = df_ret['total_debt'].copy() - df_ret['current_debt'].copy() df_ret.index.name = 'ticker' return df_ret.reset_index(drop=False).replace({ np.nan: None }).to_dict('records')