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的阵列上运行,但不起作用。
答
zip是一个数字或字符串,但您已为此值分配了一个函数。 zip = g.postal
- >zip = g.postal()
答
它缺少的括号问题为.as_matrix
, pandas.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()
['zip'](https://docs.python.org/2/library/functions.html#zip)是一个内置的函数,从来没有这样做,将其重命名为'zip_code'或其他东西 –