我正在一个包含近 7 万个条目的数据帧上执行三重 for 循环。我该如何优化它?
我的最终目标是创建一个包含地震事件所在国家/地区的新列。我有一个纬度、经度和“地点”(例如:“阿拉斯加北 Nenana 北 17 公里”)列。我试图逆向地理编码,但有 68,488 个条目,没有免费服务可以让我这样做。作为学生,我负担不起。
所以我使用一个带有国家列表的数据框和一个带有州列表的数据框来与 USGS['place'] 的值进行比较。为此,我最终决定使用 3 个 for 循环。
正如您可以假设的那样,这需要很长时间。我希望有一种方法可以加快速度。我正在使用 python,但我也使用 r。for 循环在 python 上运行得更好。
我会采取任何更好的选择。
USGS = pd.DataFrame(data = {'latitide':[64.7385, 61.116], 'longitude':[-149.136, -138.655], 'place':['17km N of North Nenana, Alaska', '74km WNW of Haines Junction, Canada'], 'country':[NA, NA]})
states = pd.DataFrame(data = {'state':['AK', 'AL'], 'name':['Alaska', 'Alabama']})
countries = pd.DataFrame(data = {'country':['Afghanistan', 'Canada']})
for head in states:
for state in states[head]:
for p in USGS['place']:
if state in p:
USGS['country'] = USGS['country'].map({p : 'United 'States'})
# I have not finished the code for the countries dataframe
慕村9548890
相关分类