Python 同时在两个数据帧中循环

Python 同时在两个数据帧中循环,python,pandas,Python,Pandas,我有两个数据帧(frame\u Ipam和frame\u now) 在现在的框架中,一列包含IP地址,在框架中,我们有两列: 一个包含起始地址 另一个是网络的终端地址 首先,我想知道在交换机范围内,IP地址是frame\u,现在在其中。我已经做了。我使用一个函数调用“check_ip”,如果地址在一个开始和一个结束之间,则返回true或false 代码: def is_ipv4(string): try: ipaddress.IPv4Network(string)

我有两个数据帧(
frame\u Ipam
frame\u now

在现在的框架中,一列包含IP地址,在框架中,我们有两列:

  • 一个包含起始地址
  • 另一个是网络的终端地址
首先,我想知道在交换机范围内,IP地址是
frame\u,现在
在其中。我已经做了。我使用一个函数调用“check_ip”,如果地址在一个开始和一个结束之间,则返回
true
false

代码:

def is_ipv4(string):
     try:
        ipaddress.IPv4Network(string)
        return True
     except ValueError:
        return False

def check_ip(addr,site_Id_SN,Type,start,end,name,site_id_I):
    dfObj = pd.DataFrame(columns=['Subnet_name','start','ip_addr','end','Site_Id_Ipam','Site_Id_SN','Type'])
    for i,j,k,l in zip(start,end,name,site_id_I):
        result=ipaddress.ip_address(i)<ipaddress.ip_address(addr)<ipaddress.ip_address(j)
        if result is True: 
            dfObj = dfObj.append({'Subnet_name':l,'start': i, 'ip_addr':addr, 'end': j,'Site_Id_Ipam':k,'Site_Id_SN':site_Id_SN,'Type':Type}, ignore_index=True)
        if result is False:
            continue
    return(dfObj)

for x,y,z in zip(frame_now.loc[:,'ip_address'],frame_now.loc[:,'site_id_SN'],frame_now.loc[:,'Type']):
    ad_s=Ipam.loc[:,'adresse_start']
    ad_e=Ipam.loc[:,'adresse_end']
    site_id_ipam= Ipam.loc[:,'site_id_IPAM']
    name=Ipam.loc[:,'subnet_name']
    is_ipv4(x)
    if is_ipv4(x)is True:
        print(check_ip(x,y,z, ad_s,ad_e,site_id_ipam,name))    
    if is_ipv4(x)is False:
        print(x,"n'est pas une addresse ip")
def是ipv4(字符串):
尝试:
ipaddress.IPv4网络(字符串)
返回真值
除值错误外:
返回错误
def检查ip(地址、站点Id序列号、类型、开始、结束、名称、站点Id序列号):
dfObj=pd.DataFrame(列=['Subnet\u name','start','ip\u addr','end','Site\u Id\u Ipam','Site\u Id\u SN','Type'])
对于zip中的i、j、k、l(开始、结束、名称、站点id):

结果=ip地址。ip地址(i)欢迎使用堆栈溢出!这是一个很好的问题描述,但我们实际上无法测试任何东西来帮助解决它。这将是非常有帮助的,看看你的输入和所需的输出样本,以作出一个决定。请参阅以获取帮助。改进了许多案例的标题和文本。下次请尽量写慢一点。你的文章有很多问题,我很难理解!欢迎来到堆栈溢出!这是一个很好的问题描述,但我们实际上无法测试任何东西来帮助解决它。这将是非常有帮助的,看看你的输入和所需的输出样本,以作出一个决定。请参阅以获取帮助。改进了许多案例的标题和文本。下次请尽量写慢一点。你的文章有很多问题,我很难理解!