使用pandas 根据内外网ip地址的对应关系,当内网ip地址打乱时输出对应的公网IP地址

当职场小白不想做无意义的杂活时,我需要怎么办?反抗导师,上报经理?nonono 怂包选择另辟蹊径,在干杂活中找到意义。
导师布置任务:根据某一张表中的内网公网对应关系,找到另一张表中内网IP地址对应的公网IP地址。
我的思路是这样的:把我需要的信息先从复杂的表格中筛选出来。然后将内外网IP地址,以字典的形式存储起来。然后重新遍历打乱顺序后的内网IP地址,找出对应的公网IP。下面po出代码

import pandas as pd
fpath="D:\对应表.xlsx"
data=pd.read_excel(fpath)
data.head()

使用pandas 根据内外网ip地址的对应关系,当内网ip地址打乱时输出对应的公网IP地址_第1张图片

data.set_index('InternalIP').to_dict()['External IP']
datadic=data.set_index('InternalIP').to_dict()['External IP']
from collections import OrderedDict
datadic=OrderedDict(datadic)
list(datadic.items())

将第一列,二列存入到无序字典 datadic里
这样字典datadic中 键为internal IP,值为external IP。

listinternal=data['internal ip'].values.tolist()
listinternal

将internal ip列转换为列表

li=[]
for i in listinternal:
    #print(datadic[i])
    if i in datadic.keys():
        li.append(datadic[i])
        print(datadic[i])
        
    if i not in datadic.keys():
        print("null")
        li.append("null")
        continue
li

设置空列表li,遍历listinternal,如果存在于字典datadic的键里,找到对应的值,如果不存在键里,则输出null。最后再将结果li保存到表格里

data['public ip']=li
data.head()

使用pandas 根据内外网ip地址的对应关系,当内网ip地址打乱时输出对应的公网IP地址_第2张图片

data.to_excel("D:\修改后对应表.xlsx")

通过检查,和之间使用Excel里的vlookup函数得出的结果一致。

你可能感兴趣的:(使用pandas 根据内外网ip地址的对应关系,当内网ip地址打乱时输出对应的公网IP地址)