python - 在 python 中构建字典
问题描述
我有一个需要转换为字典的数据框。我在循环中遍历行,但输出与预期不同,因为每个键可能有多个“框”和“分数”。
pred_boxes = {}
for x, row in df.iterrows():
l = [row['px1'], row['px2'], row['py1'], row['py2']]
p = ['scores']
boxes = {'boxes': l, 'scores': p}
previous_values = pred_boxes.get(row['img_name'], [])
previous_values.append(boxes)
pred_boxes[row['img_name']] = previous_values
我得到的结果如下:
pred_boxes={'img_name':[{'boxes':[px1_1, px2_1, py1_1, py2_1], 'scores': [scores_1]},{'boxes':[px1_2, px2_2, py1_2, py2_2], 'scores': [scores_2]}]
我想要的结果是:
pred_boxes={'img_name':{'boxes':[[px1_1, px2_1, py1_1, py2_1],[px1_2, px2_2, py1_2, py2_2]], 'scores': [scores_1, scores_2]}
我想我必须在循环中为每个 img_name (这是关键)创建一个循环,但我不知道如何去做。
如果有人有建议,将极大地帮助您。
解决方案
只是改变
previous_values = pred_boxes.get(row['image_name', [])
previous_values.append(boxes)
至
previous_values = pred_boxes.get(row['image_name', {'boxes':[], 'scores':[]})
previous_values['boxes'].append( l )
previous_values['scores'].append( p )
您根本不需要创建“盒子”字典。
推荐阅读
- java - 将样式文本从 JTextPane 复制到 Microsoft Word
- python - 在 Pyomo 中打印 3D 三维变量(3 个索引)
- flutter - 使用动画隐藏、显示和调整 ListView 的大小
- excel - 有没有办法用 Power Query 中的列位置替换列名?
- visual-studio - 来自文件的 MSBuild CustomBuild AdditionalInputs
- terraform - 如何为 AWS 组织账户实施集中式日志记录
- python - 如何在 thrift_sasl 中配置机制
- c - 如果给定一个值而不是地址,C 中的指针会发生什么?
- javascript - 缩放图像按钮必须单击两次才能在 Angular 中工作?
- go - 获取 azure go sdk http 状态码的推荐方法是什么?