python - 将 CSV 行附加到字典仅允许一定数量的项目到字典
问题描述
我正在从一个包含大约 14k 行的 csv 文件创建一个字典。将行附加到数组可以找到它附加所有行。但是当我试图附加到我想要的字典时,它只附加了 55 个项目。我不确定为什么会这样。位置是字符串,数字是字符串整数。
import csv
dictionary = {} #Length of dictionary is only 55
location = [] #Length of location and number is 13,792
number = []
with open('C:/Users/././.csv') as c:
csvReader = csv.reader(c, delimiter=',')
for row in csvReader:
location.append(row[3])
number.append(row[11])
dictionary[row[3]] = row[11]
解决方案
Dict 键是唯一的,通过为现有键分配一个新值,它会覆盖该键的先前值。由于您很可能只有 55 个唯一位置并且每个位置有多个数字,因此您可以使用列表的 dict 作为数据结构:
for row in csvReader:
dictionary.setdefault(row[3], []).append(row[11])
推荐阅读
- r - 数据清洗功能:用中位幂代替十的幂
- arrays - 使用访问远程服务器的 bash 脚本打印数组元素的问题
- string - 后缀自动化和 Ukkonen 后缀树的区别
- angular - 在 Angular nx 项目中导入 glsl 文件
- python - 如何在 Python 脚本上动态启用/禁用 Tornado Auth?
- python - python中有没有更简单的编码来使用字典数据结构进行编码和解码
- uncrustify - uncrustify:如何在 else 之后强制尾随 {
- php - 如果引用的表列在 Laravel 6 中使用外键的表之后,则不能在迁移中使用外键
- python - 在熊猫数据框中获取非常复杂条件下的最大值和最小值
- html - 如何将 Angular HTML 文件的默认位置从“从左到右”更改为“从右到左”?