def geo(slf, clean_df): try: geol = Nominatim(user_agent="basicalily") geol.default_timeout = 10000 def get_lat_lon_as_string(addr): q = {'street': addr, 'city': 'Philadelphia', 'country': 'USA'} geoplace = geol.geocode(query=q, viewbox=[(40.151378, -75.432450), (39.796416, -74.933517) ]) #GUESS BOX if geoplace: print(geoplace) return f'{geoplace.latitude}*{geoplace.longitude}' if geoplace else 'NOTFOUND' clean_df.loc[:, 'city_coord'] = clean_df['Address'].apply( lambda addr: get_lat_lon_as_string(addr)) clean_df = clean_df[clean_df['city_coord'] != 'NOTFOUND'] clean_df.loc[:, 'Latitude'] = clean_df['city_coord'].apply( lambda x: x.split('*')[0]) clean_df.loc[:, 'Longitude'] = clean_df['city_coord'].apply( lambda x: x.split('*')[1]) clean_df.drop(columns=['city_coord'], inplace=True) clean_df.loc[:, 'Status Contractual Search Date'] = pd.to_datetime( clean_df['Status Contractual Search Date']) except: raise TypeError("Malformed Clean") return clean_df