Создайте карту с помощью фолиума с несколькими точками - PullRequest
0 голосов
/ 17 марта 2019

Проблема

Я написал этот код почти слово за словом, и получил эту ошибку.Таблица данных имеет длину приблизительно 1000 строк, если это важно.

Как мне решить эту проблему?

Код

import folium
import numpy as np
import pandas as pd

df = pd.read_csv('Book1.csv')
lat = df.Latitude
lon = df.Longitude
name = df.Docking

m = folium.Map(location=[20, 0], tiles="Stamen Terrain", zoom_start=9)

locations = df[['Latitude', 'Longitude']]
locationlist = locations.values.tolist()

for i in range(0, len(df)):
    folium.Marker(lon[i], lat[i], popup=df.Docking[i]).add_to(m)

Ошибка:

----> 2     folium.Marker(lon[i], lat[i], popup=df.Docking[i]).add_to(m)

TypeError: __init__() got multiple values for argument 'popup'

РЕДАКТИРОВАТЬ: После ответа, предлагающего группировать атрибуты Lat и Long, эта ошибка показывает:

---> 16     folium.Marker([lon[i], lat[i]], popup=df.Docking[i]).add_to(m)

TypeError: must be real number, not str

1 Ответ

1 голос
/ 17 марта 2019

Вероятно, случится так, что долгота / широта ожидается как кортеж / список с 2 элементами, затем следует popup, но вы предоставляете 2 элемента , затем popup снова

Пример из документации :

folium.Marker([45.3288, -121.6625], popup='<i>Mt. Hood Meadows</i>', 

Автономный пример:

def f(a,b,c=None):
    pass

f(12,34,b=12)

дает:

TypeError: f() got multiple values for argument 'b'

, поскольку b являетсяпередается как позиционное и ключевое слово.

Группировка lat / long в списке исправляет ваш код:

folium.Marker([lon[i], lat[i]], popup=df.Docking[i]).add_to(m)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...