【发布时间】:2020-06-08 01:18:35
【问题描述】:
如果不是每个顶级键都具有所有二级键,我如何解压缩嵌套字典?
我从网站上抓取了属性数据。该网站为每个属性提供了最多 7 个属性,但属性类型因属性而异(即“土地”属性类型不会将“建筑物大小”显示为属性,因为没有建筑物)。
作为解决此问题的第一步,我将属性类型和值作为单独的列进行抓取,并将数据转换为字典形式,其中每个属性都有一个唯一的 ID_Number 和一系列键:值对。现在我想将该字典解压缩到一个数据框中,其中列标题将代表所有可能的二级键(属性类型),列值将是与属性键关联的“值”。
数据示例如下:
{1: [{'Status:': 'For Lease',
'Price:': '$3.17 SF/Mo',
'Property Type:': 'Retail',
'Sub-Type:': 'Office, Retail',
'Spaces:': '2 Spaces',
'Space Available:': '0.00 - 0.03 AC',
'Building Size:': '9,161 SF'}],
2: [{'Status:': 'For Lease',
'Price:': '$1.25 SF/Mo',
'Property Type:': 'Office',
'Sub-Type:': 'Office',
'Spaces:': '1 Space',
'Space Available:': '0.03 AC',
'Building Size:': '11,332 SF'}],
3: [{'Status:': 'For Sale',
'Price:': 2521740,
'Property Type:': 'Retail',
'Sub-Type:': 'Fast Food',
'Building Size:': '2,410 SF',
'Cap Rate:': 0.0575,
'Lot Size:': '76,666 SF'}],
4: [{'Status:': 'For Lease',
'Price:': '$0.63 SF/Mo',
'Property Type:': 'Retail',
'Sub-Type:': 'Retail',
'Spaces:': '1 Space',
'Space Available:': '0.50 AC',
'Building Size:': '59,095 SF'}],
我将如何提取这个?我在 from_dict 上尝试了几种变体,但没有找到可行的解决方案。
提前致谢!
【问题讨论】:
-
首先用 Python 将其处理成一个字典,其中的列表包含值 (
{key:[val,val,..],key:...}),然后将其提供给 DataFrame。如果缺少某些键,dict.get 可能会有所帮助。
标签: python pandas dictionary unpack