使用df索引范围的条件

时间:2019-05-21 12:51:41

标签: python-3.x dataframe if-statement conditional-statements

在给定两个数据帧的情况下,我想使用df1中所述的ip range将区域列添加到df2

  • df1ip_address
  • df2具有ip_fromip_toregion

您可以使用索引创建条件语句吗? 如果df1.ip[0]在特定的ip之间,则在df1中添加区域? 我猜想if语句中应该有一个循环,以便它可以循环通过df2来查看ip的范围在哪里,并抓住该区域。

enter image description here

我知道通过手动添加每个条件,这将起作用, 但是有没有办法使条件按索引循环?

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'])

1 个答案:

答案 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]])