美文网首页
4 Pandas 处理excel复杂列转化为多行 2020080

4 Pandas 处理excel复杂列转化为多行 2020080

作者: avyhlj | 来源:发表于2020-08-07 18:54 被阅读0次

    1 业务背景


    1.png

    2 解决方法

    #导入包
    import pandas as pd
    import struct
    import socket
    
    #1 导入数据
    data = pd.read_excel('./python_explode.xls',sheet_name ='Sheet1')
    
    2.png
    #2 计算两个IP段之间的有效IP地址
    def findIPs(start, end):
        ipstruct = struct.Struct('>I')
        start, = ipstruct.unpack(socket.inet_aton(start))
        end, = ipstruct.unpack(socket.inet_aton(end))
        return [socket.inet_ntoa(ipstruct.pack(i)) for i in range(start, end+1)]
    
    #print(findIPs('111.111.111.0', '111.111.111.3'))
    
    data['ips'] =''
    for i in range(len(data)): 
        data['ips'] [i] = findIPs(data['起始IP地址(*)'][i], data['终止IP地址(*)'][i])
    
    #3 将ips复杂多列转多行 
    data_explode = data.explode('ips')
    

    3 结果


    3.png

    相关文章

      网友评论

          本文标题:4 Pandas 处理excel复杂列转化为多行 2020080

          本文链接:https://www.haomeiwen.com/subject/cdrqdktx.html