【发布时间】:2020-07-11 02:34:57
【问题描述】:
我有一些硬件可以将数据输出为嵌套字典。
data_out = {'unimportant_dict': [{'dateTime': '2019-12-01', 'value': '183'}], 'secondary_dict': {'sub_dict': [{'time': '00:00:00', 'value': 0}, {'time': '00:01:00', 'value': 0}, {'time': '00:02:00', 'value': 0}], 'datasetInterval': 1}}
我对“sub_dict”中的“值”数据感兴趣,我想将其读入 Pandas df,但我有多个文件要整理成一个数据帧。
我可以读取一个可以正常工作的文件
tempdict = data_out['secondary_dict']
testdf = pd.DataFrame(tempdict['sub_dict'])
这给了
time value
0 00:00:00 0
1 00:01:00 0
2 00:02:00 0
3 00:03:00 0
4 00:04:00 0
现在我想添加第二个文件,但只添加值数据(因为时间戳总是相同的)。假设第二个文件具有与上述相同的结构,我的方法是错误的。
tempdict2 = data_out2['secondary_dict']['value']
testdf['new data'] = tempdict2
TypeError: list indices must be integers or slices, not str
我认为这是因为它是一个很长的字典列表(我假设它是一个保留时间顺序的列表)。我以为我可以添加它,然后删除额外的时间列,但它将整个字典添加为单个列
time value fle2
0 00:00:00 0 {'time': '00:00:00', 'value': 0}
1 00:01:00 0 {'time': '00:01:00', 'value': 0}
2 00:02:00 0 {'time': '00:02:00', 'value': 0}
3 00:03:00 0 {'time': '00:03:00', 'value': 0}
4 00:04:00 0 {'time': '00:04:00', 'value': 0}
在我写作时,我想知道将“值”值提取到列表中然后将其添加到 df 是否更容易?
我认为这不是 Capture python value from multi-nested dictionary 因为这仍然是一个列表作为单个字典,而这是一个列表中有很多字典。
任何帮助表示赞赏。
【问题讨论】:
-
你介意看看你分享的数据,某处有错误。另外,您能否分享第二个文件的小样本,以便根据您的要求工作的人可以获得完整的图片。也发布最终输出 df。
-
抱歉 - 我在文件数据中不清楚。该数据有大约 1400 个条目,所以我截断了(我试图用 ... 表示,但鉴于这是一个编码站点,这是一个坏主意。已更新。
标签: python python-3.x pandas dictionary