【发布时间】:2018-12-07 00:28:47
【问题描述】:
我有一个嵌套的 json 数据集,示例如下。属性因每口井而异。当键因情况而异时,如何将这些数据标准化为数据框?我希望没有键的行显示为空。
{井号:3。 属性:[ 名称:xxx,值,yyy …… ....]}
样本数据:
[{'WellID': 3,
'Attributes': [{'Name': 'Production Start Date',
'Value': '5/17/2012 12:00:00 AM'},
{'Name': 'Latitude', 'Value': '36.594260510'},
{'Name': 'Longitude', 'Value': '-97.706833870'},
{'Name': 'Has Plunger', 'Value': 'True'},
{'Name': 'Has Flare', 'Value': 'True'},
{'Name': 'Has VRU', 'Value': 'True'},
{'Name': 'State', 'Value': 'OK'},
{'Name': 'Country', 'Value': 'USA'},
{'Name': 'County', 'Value': '047'},
{'Name': 'Alcohol Injector', 'Value': 'False'},
{'Name': 'Shut In', 'Value': 'False'},
{'Name': 'Active', 'Value': 'True'}]},
{'WellID': 4,
'Attributes': [{'Name': 'Production Start Date',
'Value': '5/31/2012 12:00:00 AM'},
{'Name': 'Latitude', 'Value': '36.564503337'},
{'Name': 'Longitude', 'Value': '-97.600837012'},
{'Name': 'State', 'Value': 'OK'},
{'Name': 'Country', 'Value': 'USA'},
{'Name': 'County', 'Value': '047'},
{'Name': 'Alcohol Injector', 'Value': 'False'},
{'Name': 'Shut In', 'Value': 'False'},
{'Name': 'Active', 'Value': 'True'}]},
{'WellID': 5,
'Attributes': [{'Name': 'Production Start Date',
'Value': '8/18/2012 12:00:00 AM'},
{'Name': 'Latitude', 'Value': '36.592378770'},
{'Name': 'Longitude', 'Value': '-97.725740930'},
{'Name': 'Has Plunger', 'Value': 'True'},
{'Name': 'Has Flare', 'Value': 'True'},
{'Name': 'Has VRU', 'Value': 'True'},
{'Name': 'State', 'Value': 'OK'},
{'Name': 'Country', 'Value': 'USA'},
{'Name': 'County', 'Value': '047'},
{'Name': 'Alcohol Injector', 'Value': 'False'},
{'Name': 'Shut In', 'Value': 'True'},
{'Name': 'Active', 'Value': 'True'}]},
{'WellID': 6,
'Attributes': [{'Name': 'Latitude', 'Value': '36.572665500'},
{'Name': 'Longitude', 'Value': '-97.672614600'},
{'Name': 'State', 'Value': 'OK'},
{'Name': 'Country', 'Value': 'USA'},
{'Name': 'County', 'Value': '047'},
{'Name': 'Alcohol Injector', 'Value': 'False'},
{'Name': 'Shut In', 'Value': 'False'},
{'Name': 'Active', 'Value': 'True'}]},
{'WellID': 7,
'Attributes': [{'Name': 'Latitude', 'Value': '36.562985200'},
{'Name': 'Longitude', 'Value': '-97.617945400'},
{'Name': 'State', 'Value': 'OK'},
{'Name': 'Country', 'Value': 'USA'},
{'Name': 'County', 'Value': '047'},
{'Name': 'Alcohol Injector', 'Value': 'False'},
{'Name': 'Shut In', 'Value': 'False'},
{'Name': 'Active', 'Value': 'True'}]}]
我尝试使用这种说法:
result = json_normalize(subset, 'Attributes',['WellID'], errors='ignore')
但它会导致以下不平坦:
Name Value WellID
0 Production Start Date 5/17/2012 12:00:00 AM 3
1 Latitude 36.594260510 3
2 Longitude -97.706833870 3
3 Has Plunger True 3
4 Has Flare True 3
5 Has VRU True 3
6 State OK 3
7 Country USA 3
8 County 047 3
9 Alcohol Injector False 3
10 Shut In False 3
11 Active True 3
12 Production Start Date 5/31/2012 12:00:00 AM 4
13 Latitude 36.564503337 4
14 Longitude -97.600837012 4
15 State OK 4
16 Country USA 4
17 County 047 4
18 Alcohol Injector False 4
19 Shut In False 4
20 Active True 4
21 Production Start Date 8/18/2012 12:00:00 AM 5
22 Latitude 36.592378770 5
23 Longitude -97.725740930 5
24 Has Plunger True 5
25 Has Flare True 5
26 Has VRU True 5
27 State OK 5
28 Country USA 5
29 County 047 5
30 Alcohol Injector False 5
31 Shut In True 5
32 Active True 5
33 Latitude 36.572665500 6
34 Longitude -97.672614600 6
35 State OK 6
36 Country USA 6
37 County 047 6
38 Alcohol Injector False 6
39 Shut In False 6
40 Active True 6
41 Latitude 36.562985200 7
42 Longitude -97.617945400 7
43 State OK 7
44 Country USA 7
45 County 047 7
46 Alcohol Injector False 7
47 Shut In False 7
48 Active True 7
请告知如何将其转换为以下格式:
井号 |纬度 |经度 |状态 | ....等
我现在有一个数据集,该数据集在 Well ID 标签上有多个字段。有没有办法将所有这些字段都放入数据框中,而无需手动输入它们?
谢谢,
【问题讨论】:
标签: json pandas nested normalize