我使用的列表如下所示:
partlist = [ 'PART1', 'PART2','PART3', 'PART4', 'PART5', 'PART6' ]
然后分析几千个文件,寻找具有这些部件的设备。我可能会得到这样一本字典:
{'hostname1': ['MODEL', 'PART1'], 'hostname2': ['MODEL', 'PART1']}
或:
{'hostname1': ['MODEL', 'PART1', 'PART2', 'PART1', 'PART1', 'PART1', 'PART4' ], 'hostname2': ['MODEL', 'PART1', PART1', 'PART4']}
我的for循环结束于:
(path,file) = os.path.split(device)
create_dictionary()
允许我使用文件名作为与设备主机名匹配的键来创建字典(我能想到的保持键唯一的最简单方法,并允许脚本中的其他功能)
def create_dictionary():
key = file
mydict.setdefault(key, [])
mydict[key].append(model)
mydict[key].append(part)
return mydict
然后我有个电话要用熊猫打印
def print_sorted():
df = pd.DataFrame.from_dict(mydict,'index')
df.columns=['model', 'part']
print(df.groupby(['model','part']).size())
但是有了这个pandas调用,如果一个设备的型号比我的parts列表中的146个部件多,并且只有一个部件,这个pandas调用就会退出,并放弃关于轴的长度错误,因为我的字典每个键有2个以上的值
有人知道如何使它允许列/groupby中有任意数量的值,并且知道第一个值始终是设备的模型,之后的任何值都将是一部分吗
事先谢谢你的帮助。这一个已经让我难住了看,所以,随机Python/熊猫网站数周
目前没有回答
相关问题 更多 >
编程相关推荐