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

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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。