Столбец CUSIP должен быть явно прочитан как строковый столбец. Чтобы сохранить ведущие нули. Кроме того, вы можете использовать pandas .Series.str.zfill для заполнения нулей, так как CUSIP
число всегда 9 di git.
df['CUSIP'] = df['CUSIP'].astype(str).str.zfill(9)
Remove l xml парсер из конструктора BeatifulSoup
def read_symbol(cusip):
r = requests.get(base_url.format(cusip))
soup = bs(r.content, 'html.parser')
symbol = soup.select_one('[href*=SID_VALUE_ID]')
return symbol.text if symbol is not None else np.nan
Использовать карту и заполнить
df['Symbol'] = df['CUSIP'].map(read_symbol).fillna('No Symbol')
Вывод
Company Name Symbol CUSIP
0 Aa Inc AIG 026874784
4 Cc Inc No Symbol 16117M305
7 Bb Inc FPAC/U 30734W208