2014-03-06 88 views
1

您好,我正在尝试对德国公司地址进行地理编码。我的文件是一个csv文件,包含2列我想要进行地理编码的地址和员工人数。当我加载文件,使用熊猫,并打印他们正确显示的地址(所以我认为这不是一个编码问题),即使他们有一些德语字符。这是我的代码:pygeocoder模块不能正常工作

import csv 
import pygeocoder 
import pandas as pd 
import codecs 
import json 
import urllib2 
from pygeocoder import Geocoder 

df = pd.read_csv('C:\Users\Jtrujillo\Desktop\germangeocodes (2).csv') 

address = df.Address 
print address 

for a in address: 
    result = Geocoder.geocode(a) 

而且我得到这个错误:

Traceback (most recent call last): 
    File "<stdin>", line 2, in <module> 
    File "F:\WinPython-64bit-2.7.6.3\python-2.7.6.amd64\lib\site-packages\pygeocoder.py", line 110, in geocode 
    return GeocoderResult(Geocoder.get_data(params=params)) 
    File "F:\WinPython-64bit-2.7.6.3\python-2.7.6.amd64\lib\site-packages\pygeocoder.py", line 190, in get_data 
    raise GeocoderError(response_json['status'], response.url) 
pygeolib.GeocoderError: Error INVALID_REQUEST 
Query: https://maps.google.com/maps/api/geocode/json?language=&region=&bounds=&components=&address=Marcel-Breuer-Str.+12%2C+M%FCnchen%2C+Bayern%2C+80807%2C+Germany&sensor=false 

这是我使用的文件:https://www.dropbox.com/s/tynzlc9wp74zszr/germangeocodes%20%282%29.csv

回答

1

你需要告诉大熊猫文件的编码:

df = pd.read_csv('geocodes.csv', encoding="iso-8859-1") 
+0

这很好,非常感谢。你是否总是必须指定pygeocoder文件的编码? – asado23

+0

好问题。只有当它是非标准的东西导致问题。 :) –