Python 如何使用basemap从2个excel列打印坐标(浮点错误)

Python 如何使用basemap从2个excel列打印坐标(浮点错误),python,excel,projection,matplotlib-basemap,Python,Excel,Projection,Matplotlib Basemap,我是python和这个社区的新手。我必须用Python中的Basemap(罗宾逊投影)在全球地图上绘制许多城市。坐标在excel文件中给出,大约有10列,分为2列(纬度和经度)。我只选择了这2列,但当我执行投影时,我得到“TypeError:需要浮点”。这是我的代码: from IPython import get_ipython get_ipython().magic('reset -sf') get_ipython().magic('matplotlib') from mpl_toolki

我是python和这个社区的新手。我必须用Python中的Basemap(罗宾逊投影)在全球地图上绘制许多城市。坐标在excel文件中给出,大约有10列,分为2列(纬度和经度)。我只选择了这2列,但当我执行投影时,我得到“TypeError:需要浮点”。这是我的代码:

from IPython import get_ipython
get_ipython().magic('reset -sf') 
get_ipython().magic('matplotlib')
from mpl_toolkits.basemap import Basemap
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from pandas import Series, DataFrame
import xlrd
plt.close('all')
#%%
dirname=('C:\\Users\\Guido\\Documents\\Geologie\\Programmeren\\Scripts van mij\\Deftig\\')
filename='WUP2014-F12-Cities_Over_300K.xls'
xlsfile = pd.ExcelFile(dirname + filename)
dframe = xlsfile.parse("DATA")

urbpop = DataFrame(dframe)
lat = urbpop[['Unnamed: 6']]
lon = urbpop[['Unnamed: 7']]
m = Basemap(projection='robin',lon_0=0,resolution='c')
m.drawcoastlines()
m.fillcontinents(zorder = 0)
lons,lats = m(list(lon), list(lat))
m.scatter(lons, lats, color ='red')
问题出现在以下行中:

lons,lats = m(list(lon), list(lat))


有人有主意吗?

试着把他们打成花车

lons,lats = m([float(i) for i in lon], [float(i) for i in lat])

免责声明:我没有尝试运行此操作。

仍然存在错误。我知道收到消息“ValueError:无法将字符串转换为浮点:未命名:7”。我猜这些字符串无法转换为浮点。把它们打印出来,看看它们是什么样子(它们可能不是偶数)。我没有权限访问你的文件,所以我帮不了你更多。我在问题文本中贴了一张图片,如果可以的话?我知道了。我输入了“drframe=xlsfile.parse(“DATA”,skiprows=16)”,现在它可以工作了。谢谢你的帮助!