I want to get the location name that is inside datos using the official list of cities that I have in a df.
barha = pd.read_csv('https://wms.ign.gob.ar/geoserver/bahra/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=bahra%3Alocalidad_bahra&outputFormat=csv')
datos = pd.DataFrame([['1','La Plata Buenos Aires'],['2','Lanús'],['3','lanus'],['4','Agua de Buenos Aires'],['5','mar del Plata'],['6','Gas SAN ISIDRO']],
columns = ['id', 'desc'])
I tried to do this
datos['localidad'] = datos['desc'].apply(lambda x: next(iter([i for i in barha['nombre_geografico'] if i in x]), None))
The expected result would be:
id | desc | localidad |
---|---|---|
1 | La Plata Buenos Aires | La Plata |
2 | Lanús | Lanús |
3 | lanus | Lanús |
4 | Agua de Buenos Aires | none |
5 | mar del Plata | Mar del Plata |
6 | SAN ISIDRO | San Isidro |
But the result I get is:
id | desc | localidad |
---|---|---|
1 | La Plata Buenos Aires | Pla |
2 | Lanús | Lanús |
3 | lanus | none |
4 | Agua de Buenos Aires | none |
5 | mar del Plata | Pla |
6 | SAN ISIDRO | none |
I know that it took the exact word, but how can I solve this problem?