x lx dx
1 1 100000 213
2 2 99787 96
3 3 99691 52
以上是数据帧rep_points。当我运行下面的代码时,它会给出错误
lat long time
0 39.991861 116.344372 2.823611
1 39.979768 116.310597 22.263056
2 31.235001 121.470624 13.141667
3 31.248822 121.460637 1.805278
在制作圆圈的行中。
Type error: cannot convert the series to <class 'float'>
我应该如何解决此错误?我尝试过使用
gmap = gmplot.GoogleMapPlotter(rep_points['lat'][0], rep_points['long'][0], 11)
gmap.plot(df_min.lat, df_min.lng)
gmap.scatter(rep_points['lat'],rep_points['long'],c='aquamarine')
gmap.circle(rep_points['lat'],rep_points['long'], 100, color='yellow')
gmap.draw("user001_clus_time.html")
和
rep_pints['lat'].astype(float)
但它没有奏效
答案 0 :(得分:1)
问题非常简单,
Pandas.DataFrame
。现在,当您对其进行切片rep_points['lat']
时,您会获得Pandas.Series
。gmplot.scatter()
预计iterable
floats
而不是series
floats
。 Pandas.Series
将list
转换为rep_points['lat'].tolist()
它将开始工作以下是您的更新代码:
rep_points = pd.read_csv(r'C:\Users\carrot\Desktop\ss.csv', dtype=float)
latitude_collection = rep_points['lat'].tolist()
longitude_collection = rep_points['long'].tolist()
gmap = gmplot.GoogleMapPlotter(latitude_collection[0], longitude_collection[0], 11)
gmap.plot(min(latitude_collection), min(longitude_collection).lng)
gmap.scatter(latitude_collection,longitude_collection,c='aquamarine')
gmap.circle(latitude_collection,longitude_collection, 100, color='yellow')
gmap.draw("user001_clus_time.html")
其他有助于指出的事情:
type(rep_points['lat'])
是Pandas.Series
type(rep_points['lat'][0])
是Numpy.Float
Pandas.Series
,您需要使用iteritems