from __future__ import annotations from typing import Optional, Tuple, Any import requests import pandas as pd def get_building_id(row: pd.Series[Any]) -> Optional[Tuple[int, float, float]]: r = requests.get('https://geocode.gate.petersburg.ru/parse/eas', params={ 'street': row['Улица'] }) res = r.json() if 'error' not in res: return (res['Building_ID'], res['Longitude'], res['Latitude']) return None def fetch_builing_ids(df: pd.DataFrame) -> pd.DataFrame: df[['Building_ID', 'lng', 'lat']] = df.apply( get_building_id, axis=1, result_type='expand') return df