将censusgeocode包应用于地理编码数据的整个数据帧

2024-09-30 06:15:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个纬度和经度的数据框。目标是将censusgeocode包应用于整个数据帧,其中x是纬度列,y是经度列。在此之后,我希望得到一个以大地水准面、州、县、域和块为列的数据帧。是否可以这样做,这样我就不必在for循环中迭代每个地理位置?我可以尝试apply函数,但是apply函数不一定能够适应这种问题。下面是我定义dataframe并将解决方案添加到的代码:

import pandas as pd
import censusgeocode as cg
data = pd.DataFrame({'latitude':[40.811765, 40.30019, 39.2464], 'longitude':[-81.528874, -81.83743, -83.60476]})

到目前为止,我在数千个地点进行了太长时间的尝试:

geo_list = []
for f, g in zip(data['x'], data['y']):
    try:
        census = cg.coordinates(x=g, y=f)['2010 Census Blocks'][0]
        data = [census['GEOID'], census['STATE'], census['COUNTY'], census['TRACT'], census['BLOCK'], f, g]
        geo_list.append(data)
    except:
        pass

Tags: 数据函数importfordataascglist

热门问题