我一直在尝试使用地理编码器的数据帧的lat和long。
我设法得到了distict城市的纬度/经度,并将其保存到一个文件中。然而,我在尝试将数据映射到城市的其他数据时遇到了一个错误,因为我不确定如何做到这一点。
我的代码:
def func(a):
if a in data2['CITY']:
return data2['LATITUDE']
else:
return "0"
data["LATITUDE"] = data["CITY"].apply(lambda x: func(x))
如果我理解正确,您可以通过重新索引生成data['LATITUDE']
。
将data2
的索引设置为CITY
,并针对data
的CITY
:设置reindex()
data['LATITUDE'] = data2.set_index('CITY').reindex(data['CITY'])['LATITUDE'].values
在pandas
中,如果检查某个元素是否在pd.Series
中,则需要首先将其转换为数组形式:
'SCOTLAND' in data2['CITY'] -> False
'SCOTLAND' in data2['CITY'].values -> True
完成此修复后,您需要使其返回单个元素,而不是向量。所以,最后:
def func(a):
if a in data2['CITY'].values:
return data2.loc[data2['CITY'] == a, 'LATITUDE'].item()
else:
return "0"