类型错误:无法将系列转换为<class'float'=“”>

时间:2018-04-05 09:08:02

标签: python python-3.x pandas google-maps

  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) 

但它没有奏效

1 个答案:

答案 0 :(得分:1)

问题非常简单,

  1. 您正在使用Pandas.DataFrame。现在,当您对其进行切片rep_points['lat']时,您会获得Pandas.Series
  2. gmplot.scatter()预计iterable floats而不是series floats
  3. 现在,如果您使用Pandas.Serieslist转换为rep_points['lat'].tolist()它将开始工作
  4. 以下是您的更新代码:

    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")
    

    其他有助于指出的事情:

    1. type(rep_points['lat'])Pandas.Series
    2. type(rep_points['lat'][0])Numpy.Float
    3. 要迭代Pandas.Series,您需要使用iteritems