2017-04-24 106 views
1

我想將經緯度轉換爲大約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'或其他東西 –

回答

0

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

6

它缺少的括號問題爲.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() 
相關問題