有没有办法在字典里对IP地址进行排序?

2024-04-26 12:22:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用熊猫对数据帧进行排序。 少数列是需要排序的IP地址。你知道吗

有没有一种方法可以很容易地用熊猫按IP地址排序?有没有可能创建一个自定义函数,我可以用熊猫排序IP地址?你知道吗

我能够对IP地址列表进行排序,但是我很难弄清楚如何使用Pandas创建自定义排序函数。有没有一种方法可以将inet\u aton与插座模块结合起来?你知道吗

我在熊猫之外的清单上完成了这项任务:

list_of_ips = ['192.168.204.111', '10.10.10.10', '172.16.32.6', '1.1.1.1', '8.8.8.100']
sorted(list_of_ips, key=lambda ip: struct.unpack("!L", inet_aton(ip))[0])
['1.1.1.1', '8.8.8.100', '10.10.10.10', '172.16.32.6', '192.168.204.111']

我希望数据帧中的一列IP地址可以用Pandas进行排序。你知道吗


Tags: 模块of数据方法函数ippandas列表
2条回答

在熊猫中我们有argsort

df.iloc[np.argsort(list(map(socket.inet_aton,list_of_ips)))]

在这种情况下,cyberpandas库可能很有用。和熊猫相处得很好。你知道吗

IPArray

这是您的IP地址数据的容器。甚至可以对IPv4和IPv6地址进行排序。你知道吗

In [1]: from cyberpandas import IPArray

In [2]: import pandas as pd

In [3]: arr = IPArray(['192.168.1.1',
   ...:                '2001:0db8:85a3:0000:0000:8a2e:0370:7334'])
   ...: 

In [4]: arr
Out[4]: IPArray(['192.168.1.1', '2001:db8:85a3::8a2e:370:7334'])

从以下链接找到官方文档

https://cyberpandas.readthedocs.io/en/latest/#usage

相关问题 更多 >