我正在尝试将zipcode作为数据框中的列返回。此代码有效,但不会在dataframe gps中创建新列。
(int)((sizeof(VALUE)*3)/sizeof(char)-1)
我试过了
import geocoder
import multiprocessing as mp
import pandas as pd
google_key = 'key'
def reverse_gecode(coordinates):
return geocoder.google(coordinates, key = google_key, method = 'reverse').postal
if __name__ == '__main__':
gps = pd.DataFrame({'lat': [27.950575, 40.6936488],
'lon': [-82.4571776, -89.5889864]}) # dataframe mehtod
gps['gps'] = zip(gps.lat, gps.lon)
x = list(gps['gps'])
# multiprocessings
pool = mp.Pool(processes = (mp.cpu_count() - 1))
result_latlong = pool.map(reverse_gecode, x)
pool.close()
pool.join()
gps['zip_code'] = gps.apply(lambda x: pool.map(reverse_gecode,
list(x[2])),
axis = 1)
gps['zip_code'] = gps.apply(lambda x: pool.map(reverse_gecode, x[2]),
axis = 1)
但我无法得到任何工作。我一直得到的错误是
ValueError :('未知位置:27.950575',未发生在索引0')
答案 0 :(得分:1)
尝试是:
output:
pdf_document:
latex_engine: xelatex
PS我已在import geocoder
import multiprocessing as mp
import pandas as pd
def reverse_gecode(coordinates):
return geocoder.google(coordinates, method = 'reverse').postal
if __name__ == '__main__':
gps = pd.DataFrame({'lat': [27.950575, 40.6936488],
'lon': [-82.4571776, -89.5889864]}) # dataframe mehtod
coords = gps[['lat','lon']].astype(str).apply(lambda x: (x[0],x[1]), axis=1).tolist()
# multiprocessings
pool = mp.Pool(processes = (mp.cpu_count() - 1))
gps['zip_code'] = pool.map(reverse_gecode, coords)
print(gps)
pool.close()
pool.join()
电话中删除key=google_key
,因为它对我不起作用
输出:
geocoder.google()