如何在pandas

时间:2018-03-15 08:53:49

标签: python pandas geopy

我的数据框中有数以千计的地址,我在电子表格中逐一进行经典和纬度的粘贴,但我想在数千个地址中自动执行此操作。 这是我以前的代码

from geopy.geocoders import GoogleV3
geolocator = GoogleV3(api_key= "Code")
location = geolocator.geocode("JL.Balitung III")
print((location.latitude, location.longitude))

这是输出

(-6.232012999999999, 106.8087392)

这是我的数据

id  Address 
1   JL.Balitung III
2   Jalan Balitung III
3   Jl Balitung III

这就是我想要的东西

id  Address                  Latitude               Longitude        
1   JL.Balitung III          -6.232012999999999     106.8087392
2   Jalan Erlangga III       -6.2336678             106.8086881
3   Jalan Senopati           -6.2302063             106.8066563

1 个答案:

答案 0 :(得分:2)

使用自定义功能并分配给新列:

from geopy.geocoders import GoogleV3
geolocator = GoogleV3(api_key= "code")

def f(x):
    location = geolocator.geocode(x)
    return pd.Series((location.latitude, location.longitude))

df[['Latitude','Longitude']] = df['Address'].apply(f)
print (df)
   id             Address  Latitude   Longitude
0   1     JL.Balitung III -6.232013  106.808739
1   2  Jalan Erlangga III -6.233668  106.808688
2   3      Jalan Senopati -6.230206  106.806656