添加列并将IP映射到国家/地区 - 使用第二个表(查找)的pandas数据帧

时间:2017-02-01 15:53:52

标签: python pandas

我必须去桌子。表一有一个带IP号的列。表2是查找不同国家/地区的IP边界。我想在resp国家/地区的第一个表中添加一列。

table:ip_country

        lower_bound_ip_address  upper_bound_ip_address  country
0       16777216               16777471                 Australia
1       16777472               16777727                 China
2       16777728               16778239                 China
3       16778240               16779263                 Australia
4       16779264               16781311                 China

表二有一个列ip_address,我想添加一个列' country'使用表1中的查找值

这是我尝试过的。 这不起作用。

#map ip to country
def ip_to_country(ip):
    country = ip_country.loc[(ip_country['lower_bound_ip_address'] <= ip) & (ip <= ip_country['upper_bound_ip_address']), 'country'].item()
    return country

X["country"] = X["ip_address"].apply(ip_to_country)

我收到错误: ValueError:只能将大小为1的数组转换为Python标量

请帮忙。

0 个答案:

没有答案