优化从字典数据集中检索数据

时间:2021-08-01 16:04:15

标签: python performance dictionary for-loop if-statement

我使用的数据集结构如下:

{
"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 循环中,来自一组唯一的系列代码)。

tupe = tuple()
listoftupes = list()
for uniqueSeriesCode in datasetSeriesCodes:
     if dataset['SeriesCode'] == uniqueSeriesCode:
         tupe = (dataset['DataValue'],dataset['TimePeriod'])
         listoftupes.append(tupe)

我的问题是: 这是遍历数据集的最快(最高性能)方法吗?有没有更好的办法?这是一个非常大的数据集。

0 个答案:

没有答案