使用gmplot绘图时报错:无法将Series转换为<float>类
解决gmplot绘制圆形时的TypeError问题
嘿,咱们来定位下你遇到的问题:那个Type error: cannot convert the series to <class 'float'>报错,本质是因为gmplot的circle()绘制圆形的函数,只接受单个浮点型的经纬度数值,但你直接把整个Pandas Series(比如rep_points['lat']是一整列数据,不是单个值)传进去了,所以才会触发类型转换错误。
下面给你两个实用的解决思路:
方法1:给每个坐标点都画圆形(循环遍历)
如果你的需求是给rep_points里的每一行坐标都画一个圆形,那可以用循环逐个取出单值传入:
gmap = gmplot.GoogleMapPlotter(rep_points['lat'][0], rep_points['long'][0], 11) gmap.plot(df_min.lat, df_min.lng) # 遍历DataFrame的每一行,逐个画圆 for _, row in rep_points.iterrows(): # radius是圆形半径,单位为米,你可以根据需求调整数值 gmap.circle(row['lat'], row['long'], radius=500, color='aquamarine') # 最后生成HTML格式的地图文件 gmap.draw("my_map.html")
方法2:只画单个圆形(指定单个点)
如果你本来就只想画一个圆形,那只要传入单个经纬度值就行,比如取DataFrame里某一行的数值:
gmap = gmplot.GoogleMapPlotter(rep_points['lat'][0], rep_points['long'][0], 11) gmap.plot(df_min.lat, df_min.lng) # 比如取第0个点绘制圆形,iloc用来精准定位行索引 gmap.circle(rep_points['lat'].iloc[0], rep_points['long'].iloc[0], radius=1000, color='aquamarine') gmap.draw("my_map.html")
小提醒
- 用
iloc[]取单个值比直接用[0]更稳妥,能避免DataFrame索引不是整数的情况。 - 注意
circle()的参数顺序是纬度在前,经度在后,和你初始化GoogleMapPlotter的顺序保持一致哦。
内容的提问来源于stack exchange,提问作者AkankshaC
相关产品推荐
相关产品推荐

