首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用多个点通过叶创建一个地图

用多个点通过叶创建一个地图
EN

Stack Overflow用户
提问于 2019-03-16 23:20:02
回答 1查看 1.6K关注 0票数 0

问题

我几乎逐字逐句地写了这段代码,并得到了这个错误。如果相关的话,数据表大约有1000行长。

我该如何解决这个问题?

代码

代码语言:javascript
复制
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)

错误:

代码语言:javascript
复制
----> 2     folium.Marker(lon[i], lat[i], popup=df.Docking[i]).add_to(m)

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

编辑:回复后的建议分组Lat和Long属性,此错误显示:

代码语言:javascript
复制
---> 16     folium.Marker([lon[i], lat[i]], popup=df.Docking[i]).add_to(m)

TypeError: must be real number, not str
EN

回答 1

Stack Overflow用户

发布于 2019-03-16 23:35:18

可能发生的情况是,经度/纬度被期望为包含2个元素的元组/列表,然后遵循popup,但您将提供2个元素,然后再提供popup

来自文档的示例

代码语言:javascript
复制
folium.Marker([45.3288, -121.6625], popup='<i>Mt. Hood Meadows</i>', 

独立的例子:

代码语言:javascript
复制
def f(a,b,c=None):
    pass

f(12,34,b=12)

给予:

代码语言:javascript
复制
TypeError: f() got multiple values for argument 'b'

因为b作为位置和关键字传递。

将lat/long分组在列表中可以修复您的代码:

代码语言:javascript
复制
folium.Marker([lon[i], lat[i]], popup=df.Docking[i]).add_to(m)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55202473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档