如何对多个数据帧python使用条件if/else



我一直在尝试使用地理编码器的数据帧的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,并针对dataCITY:设置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"

最新更新