在给定两个数据帧的情况下,我想使用df1
中所述的ip range
将区域列添加到df2
:
df1
有ip_address
df2
具有ip_from
,ip_to
,region
您可以使用索引创建条件语句吗?
如果df1.ip[0]
在特定的ip
之间,则在df1
中添加区域?
我猜想if语句中应该有一个循环,以便它可以循环通过df2
来查看ip
的范围在哪里,并抓住该区域。
我知道通过手动添加每个条件,这将起作用, 但是有没有办法使条件按索引循环?
region=[]
for row in df1['ip']:
if row > 15:
region.append('D')
elif row > 10:
region.append('C')
elif row > 5:
region.append('B')
else:
region.append('A')
df1['region'] = region
要使其遍历行,可以这样做吗?
region = []
# For each row in the column,
for row in df1['ip']:
if (row >= df2.loc[row,'ip_from']) and (row <= df2.loc[row,'ip_to']):
region.append(df2.loc[row,'region'])
答案 0 :(得分:0)
您可以使用索引与IP地址值匹配的区域列表:
df1 = {'ip': [13,4,7,2], 'region': []}
df2 = list('AAAAAABBBBBCCCCCDDDDD')
for i in range(len(df1['ip'])):
df1['region'].append(df2[df1['ip'][i]])