TypeError:float()参数必须是字符串或数字,而不是'方法'

问题描述:

我想将经纬度转换为大约10k数据点的邮政编码。我正在使用地理编码器来完成任务。TypeError:float()参数必须是字符串或数字,而不是'方法'

lat = subsamp['Latitude'].as_matrix 
long = subsamp['Longitude'].as_matrix 

g = geocoder.google([lat, long], method='reverse') 

zip = g.postal 

但是,上执行的地理编码器我得到的错误:

TypeError: float() argument must be a string or a number, not 'method'

我试图用一个熊猫系列则numpy的阵列上运行,但不起作用。

+1

['zip'](https://docs.python.org/2/library/functions.html#zip)是一个内置的函数,从来没有这样做,将其重命名为'zip_code'或其他东西 –

zip是一个数字或字符串,但您已为此值分配了一个函数。 zip = g.postal - >zip = g.postal()

它缺少的括号问题为.as_matrixpandas.DataFrame.as_matrix,是用于将帧转换到其numpy的阵列表示的方法

由于它是函数,所以您错过了(),您还没有添加()函数括号,对于.as_matrix

lat = subsamp['Latitude'].as_matrix 
long = subsamp['Longitude'].as_matrix 

应当如下:

lat = subsamp['Latitude'].as_matrix() 
long = subsamp['Longitude'].as_matrix()