将功能应用于熊猫数据框

大卫·M

我有一个名为“ tourdata”的熊猫数据框,其中包含676k行数据。这两列是经度和纬度。

我想使用reverse_geocode包将这些坐标转换为国家/地区数据。

当我打电话时:

import reverse_geocode as rg

tourdata['Country'] = rg.search((row[tourdata['latitude']],row[tourdata['longitude']]))

我得到了错误:

()中的ValueErrorTraceback(最近一次通话结束)1个坐标=(tourdata ['latitude'],tourdata ['longitude']),----> 2 tourdata ['Country'] = rg.search((row [tourdata ['latitude']],row [tourdata ['longitude']]))

〜/ anaconda / envs / py3 / lib / python3.6 / site-packages / reverse_geocode / init .py in search(坐标)114“”“ 115 gd = GeocodeData()-> 116 return gd.query(坐标)117 118

〜/ anaconda / envs / py3 / lib / python3.6 / site-packages / reverse_geocode / init .py在查询中(自身,坐标)46除ValueError外,例如e:47 logging.info(“无法解析坐标:{}” .format(coordinates))---> 48提高e 49否则:50个结果= [self.locations [index]索引中的索引]

〜/ anaconda / envs / py3 / lib / python3.6 / site-packages / reverse_geocode / init .py in query(自身,坐标)43“”“ 44尝试:---> 45距离,索引= self.tree。 query(coordinates,k = 1)46,除了ValueError如e:47 logging.info('无法解析坐标:{}'。format(coordinates))

scipy.spatial.ckdtree.cKDTree.query()中的ckdtree.pyx

ValueError:x必须包含长度为2的向量,但形状为(2,676701)

要测试该程序包是否正常工作:

coordinates = (tourdata['latitude'][0],tourdata['longitude'][0]),
results = (rg.search(coordinates))
print(results)

输出:

[{'country_code': 'AT', 'city': 'Wartmannstetten', 'country': 'Austria'}]

任何帮助对此表示赞赏。理想情况下,我想访问生成的词典并将仅国家/地区代码应用于“国家/地区”列。

巴泰勒米·帕维(Barthelemy Pavy)

搜索方法需要一个坐标列表。要获取单个数据点,可以使用“获取”方法。

尝试:

tourdata['country'] = tourdata.apply(lambda x: rg.get((x['latitude'], x['longitude'])), axis=1)

这对我来说可以 :

import pandas as pd
tourdata = pd.DataFrame({'latitude':[0.3, 2, 0.6], 'longitude':[12, 5, 0.8]})
tourdata['country'] = tourdata.apply(lambda x: rg.get((x['latitude'], x['longitude'])), axis=1)
tourdata['country']

输出:

0    {'country': 'Gabon', 'city': 'Booué', 'country...
1    {'country': 'Sao Tome and Principe', 'city': '...
2    {'country': 'Ghana', 'city': 'Mumford', 'count...
Name: country, dtype: object

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章