gpt4 book ai didi

Python在数据框中扩展网络地址

转载 作者:行者123 更新时间:2023-12-02 05:26:07 25 4
gpt4 key购买 nike

我有一个类似于以下内容的数据框:

df:

ip last_active
192.167.0.9 01/02/2012
226.90.2.12 05/06/2013
10.90.2.09 05/06/2014
12.60.2.80
192.168.2.11-17 05/06/2016

有没有办法扩展 df 中最后一行的 IP 地址?一个完美的解决方案是:

df:

ip last_active
192.167.0.9 01/02/2012
226.90.2.12 05/06/2013
10.90.2.09 05/06/2014
12.60.2.80
192.168.2.11 05/06/2016
192.168.2.12 05/06/2016
192.168.2.13 05/06/2016
192.168.2.14 05/06/2016
192.168.2.15 05/06/2016
192.168.2.16 05/06/2016
192.168.2.17 05/06/2016

感谢任何指导!

最佳答案

您可以应用一个函数来在范围元素中创建 IP 列表,然后如果您有最新的 pandas 版本,请使用 explode()

def ip_splitter(ip):
if '-' in ip:
last_octet_range=[int(i) for i in ip.split('.')[3].split('-')]
new_ips = [i for i in range(last_octet_range[0],last_octet_range[1]+1)]
expanded_range = ['.'.join(ip.split('.')[:3]+[str(i)]) for i in new_ips]
return expanded_range
return ip

df['ip']=df['ip'].apply(ip_splitter)

df

ip last_active
0 192.167.0.9 01/02/2012
1 226.90.2.12 05/06/2013
2 10.90.2.09 05/06/2014
3 12.60.2.80 None
4 [192.168.2.11, 192.168.2.12, 192.168.2.13, 192... 05/06/2016

df.explode('ip')

ip last_active
0 192.167.0.9 01/02/2012
1 226.90.2.12 05/06/2013
2 10.90.2.09 05/06/2014
3 12.60.2.80 None
4 192.168.2.11 05/06/2016
4 192.168.2.12 05/06/2016
4 192.168.2.13 05/06/2016
4 192.168.2.14 05/06/2016
4 192.168.2.15 05/06/2016
4 192.168.2.16 05/06/2016
4 192.168.2.17 05/06/2016

关于Python在数据框中扩展网络地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60439884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com