我试图根据第一列的值对2列对象中的数据进行分组。我需要这个数据在一个列表中,这样我可以排序后。我用snmp在大量机器上获取接口数据。在这个例子中,我有两个接口。我需要数据分组接口最好在一个列表。你知道吗
我获取的数据位于对象项中:
for i in item:
print i.oid, i.val
ifDescr lo
ifDescr eth0
ifAdminStatus 1
ifAdminStatus 1
ifOperStatus 1
ifOperStatus 0
我想在列表中按第一列中的值对数据进行排序,如下所示:
我想在一个列表中得到这些数据,所以它看起来像这样:
列表=[[lo,1,1],[eth0,1,0]]
我的解决方案又脏又长,我很不好意思把它贴在这里,所以非常感谢您的帮助。
这是我的解决方案,让你更好地了解我在说什么。我所做的是根据项目.oid,然后通过cpu列表进行迭代,并将其与基于的内存和名称进行比较项目iid. 最后,我在cpu列表中有了所有的数据,其中每个接口都是列表中的一个元素。这个解决方案有效,但对我的需要来说太慢了。你知道吗
cpu=[]
memory=[]
name=[]
for item in process:
if item.oid=='ifDescr':
cpu.append([item.iid, int(item.val)])
if item.oid=='ifAdminStatus':
memory.append([item.iid, int(item.val)])
if item.oid=='ifOperStatus':
name.append([item.iid, item.val])
for c in cpu:
for m in memory:
if m[0]==c[0]:
c.append(m[1])
for n in name:
if n[0]==c[0]:
c.append(n[1])
cpu=sorted(cpu,key=itemgetter(1),reverse=True) #sorting is easy
有没有一种简单快捷的方法?限制因素是我在一个2列对象中获得key=data值的数据。你知道吗
我不确定是否遵循您的排序,因为我看不到任何顺序,但要进行分组,您可以使用dict分组
oid
对重复键使用defaultdict:使用代码只需使用以下属性:
熊猫是处理数据的好方法。下面是一个简单的示例代码。查看官方网站了解更多信息。你知道吗
如果安装了numpy和pandas,则应该运行此操作。如果你对安装pandas没有任何线索,那就去买“anacondapython发行版”
相关问题 更多 >
编程相关推荐