Как сделать нечеткое совпадение строк между словарем и фреймом данных - PullRequest
0 голосов
/ 08 июля 2019

У меня есть словарь, подобный этому

Station                    Latitude        Longitude
London Bridge            51.50467435      -0.086005598
Kings Cross              51.53079819      -0.122756421
Kings Cross St. Pancras  51.53031246      -0.12387213
Euston Square            51.52866433      -0.133296472
Leicester Square         51.51129118      -0.128242148
Russell Square           51.52301304      -0.124590198
Sloane Square            51.49235976      -0.156488857
...

И я хочу сопоставить столбцы ['ORIGIN'] и ['DESTINATION'] в df со словарем и получить их координаты.

ДФ:

  ORIGIN                DESTINATION              origin_coor     destination_coor  
  St. Pancras           london bridge/farringdon
  London' Kings Cross      Euston Sq
  ...

Идеальный результат будет:

  ORIGIN                    DESTINATION            origin_coor     destination_coor  
 St. Pancras      london bridge/farringdon    (51.53031246,-0.12387213) (51.50467435,-0.086005598)
 London's Kings Cross      Euston Sq       (51.53079819,-0.122756421) (51.52866433,-0.133296472)
          ...

Мой код указан ниже:

import pandas as pd
df = pd.DataFrame({'ORIGIN': ['Kings Cross St. Pancras', 'Kings Cross'],
                   'DESTINATION': ['London Bridge', 'Euston Square']})

geo = {'London Bridge':(51.50467435, -0.086005598),
       'Euston Square':(51.53031246, -0.12387213),
       'Kings Cross':(51.49235976, -0.124590198),
       'Kings Cross St. Pancras':(51.52301304, -0.086005598)
      }

df['origin_coor'] = df['ORIGIN'].map(geo)
df['destination_coor'] = df['DESTINATION'].map(geo)

df

Но вопрос в том, есть ли расхождения между географическими названиями в моем словаре и фреймом данных, поэтому я не могу просто использовать функцию карты. У кого-нибудь есть решение?

...