У меня есть JSON данные в следующем формате -
[
{
"score": 0.9228411211686975,
"keypoints": [
{
"score": 0.9997879266738892,
"part": "nose",
"position": {
"x": 503.1851299157304,
"y": 348.069222553839
}
},
{
"score": 0.9999929070472717,
"part": "leftEye",
"position": {
"x": 564.1951954588015,
"y": 304.60602835323033
}
}
]
},
{
"score": 0.922500729560852,
"keypoints": [
{
"score": 0.9998152256011963,
"part": "nose",
"position": {
"x": 503.0711610486892,
"y": 350.03152797284645
}
},
{
"score": 0.9999920129776001,
"part": "leftEye",
"position": {
"x": 564.4444932116105,
"y": 305.9835118211611
}
}
]
}
]
Я хочу построить из него pandas DataFrame в следующем формате -
score keypoints_score keypoints_position.x keypoints_position.y
0 0.922841 0.999788 503.185129 348.069222
1 0.922841 0.999993 564.195195 304.606028
2 0.922500 0.999815 503.071161 350.031527
3 0.922500 0.999992 564.444493 305.983511
У меня есть написал следующий код -
import numpy as np
import json
import os
from pandas.io.json import json_normalize
file = open('path_to_a_json_file.json')
data = json.load(file)
df = json_normalize(data, 'keypoints', ['score'], record_prefix='keypoints_')
df1 = df.reindex(columns=['score', 'keypoints_score', 'keypoints_position.x', 'keypoints_position.y'])
print df1
Этот код дает мне -
score keypoints_score keypoints_position.x keypoints_position.y
0 0.922841 0.999788 NaN NaN
1 0.922841 0.999993 NaN NaN
2 0.922500 0.999815 NaN NaN
3 0.922500 0.999992 NaN NaN
Может кто-нибудь помочь указать мне на ошибку. Я думаю, что есть какая-то проблема с фреймом данных reindex
, который я делаю, но не могу понять, в чем проблема. Спасибо.