У меня есть фрейм данных pandas под названием 'tourdata', состоящий из 676 тыс. Строк данных.Два столбца - широта и долгота.
С помощью пакета reverse_geocode я хочу преобразовать эти координаты в данные страны.
Когда я звоню:
import reverse_geocode as rg
tourdata['Country'] = rg.search((row[tourdata['latitude']],row[tourdata['longitude']]))
Iполучить ошибку:
ValueErrorTraceback (последний вызов последнего) в () 1 координате = (tourdata ['latitude'], tourdata ['longitude']), ----> 2 tourdata ['Country'] = rg.search ((row [tourdata ['latitude']], row [tourdata ['longitude']]))
~ / anaconda / envs / py3 / lib / python3.6/site-packages/reverse_geocode/init.py в поиске (координаты) 114 "" "115 gd = GeocodeData () -> 116 вернуть gd.query (координаты) 117 118
~ / anaconda / envs / py3 / lib / python3.6 / site-packages / reverse_geocode / init .py в запросе (self, координаты) 46 за исключением ValueError как e: 47 logging.info ('Невозможно дляразбор координат: {} '. формат (координаты)) ---> 48 повысить e 49 еще: 50 результатов = [self.locations [index] для индекса в индексах]
~ / anaconda / envs / py3/lib/python3.6/site-packages/reverse_geocode / init .py в запросе (self, координаты) 43 "" "44 try: ---> 45 расстояний, индексы = self.tree.query (координаты, k = 1) 46 за исключением ValueError ase: 47 logging.info ('Невозможно разобрать координаты: {}'. формат (координаты))
ckdtree.pyx в scipy.spatial.ckdtree.cKDTree.query ()
ValueError: x должен состоять из векторов длины 2, но имеет форму (2, 676701)
Чтобы проверить, что пакет работает:
coordinates = (tourdata['latitude'][0],tourdata['longitude'][0]),
results = (rg.search(coordinates))
print(results)
Выходы:
[{'country_code': 'AT', 'city': 'Wartmannstetten', 'country': 'Austria'}]
Любая помощь с этим приветствуется.В идеале я хотел бы получить доступ к полученному словарю и применить только код страны к столбцу Страна.