python - 优化从字典数据集中检索数据
问题描述
我正在使用结构如下的数据集:
{
"TableName": "T60300C",
"SeriesCode": "B4186C",
"LineNumber": "86",
"LineDescription": "Government enterprises",
"TimePeriod": "1999",
"METRIC_NAME": "Current Dollars",
"CL_UNIT": "Level",
"UNIT_MULT": "6",
"DataValue": "38,275",
"NoteRef": "T60300C,T60300C.1"
},
{
"TableName": "T60300C",
"SeriesCode": "B4186C",
"LineNumber": "86",
"LineDescription": "Government enterprises",
"TimePeriod": "2000",
"METRIC_NAME": "Current Dollars",
"CL_UNIT": "Level",
"UNIT_MULT": "6",
"DataValue": "40,810",
"NoteRef": "T60300C,T60300C.1"
},
这是另一部分(同样的事情只是显示了哪些变化)
{
"TableName": "T60300C",
"SeriesCode": "A4183C",
"LineNumber": "83",
"LineDescription": "General government",
"TimePeriod": "2000",
"METRIC_NAME": "Current Dollars",
"CL_UNIT": "Level",
"UNIT_MULT": "6",
"DataValue": "543,989",
"NoteRef": "T60300C"
},
如您所见,LineDescription 出现的次数与它的条目一样多,Series Code 和 Line Numbers 是 LineDescription 的标识符,而 TableName 保持不变。
我想重组这些信息,以便更容易地处理成数据框。由于所有条目都对应于相同的主题,我希望创建一个字典,如下所示:
dataEntries = {}
dataEntries['T60300C'] = {'B4186C':[(DataValue,TimePeriod),(DataValue,TimePeriod), (etc.) ], 'A4183C':[(DataValue,TimePeriod),(DataValue,TimePeriod), (etc.)], etc.}
现在,我正在遍历整个数据集并使用 if 语句添加数据(在 for 循环中,来自一组唯一的 SeriesCode)。
tupe = tuple()
listoftupes = list()
for uniqueSeriesCode in datasetSeriesCodes:
if dataset['SeriesCode'] == uniqueSeriesCode:
tupe = (dataset['DataValue'],dataset['TimePeriod'])
listoftupes.append(tupe)
我的问题是:这是遍历数据集的最快(最高性能)方式吗?有没有更好的办法?这是一个非常大的数据集。
解决方案
推荐阅读
- python - 通过云功能通过云存储桶更改发送邮件
- mysql - 插入/删除整行与更新布尔字段?
- node.js - Mongodb 更新多个不同值的文档
- python - 从堆叠图中获取颜色
- javascript - 会话未存储在浏览器 cookie 中
- c++ - TBB 同步原语?
- postgresql - Postgres 使用另一列索引到数组列
- java - 重写 toString() 是否被认为是多态性?
- docker - 如何设置 nginx 将代理反向代理到多个容器,每个容器都有自己的 nginx 服务器
- python - 准确性对 LSTM 和 cross_val_predict 来说真的很糟糕