我几乎逐字地编写了此代码,并得到此错误。 如果相关的话,数据表大约有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
答案 0 :(得分:1)
可能发生的情况是,经度/纬度应该是包含2个元素的元组/列表,然后跟随popup
,但是您要提供2个元素然后 popup
再次
documentation中的示例:
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
作为位置和关键字传递。
在列表中将经纬度分组可修复您的代码:
folium.Marker([lon[i], lat[i]], popup=df.Docking[i]).add_to(m)