将嵌套的JSON转换为数据框

时间:2019-02-14 16:48:57

标签: python json pandas numpy dataframe

我有一个嵌套的JSON,如下所示。我想将其转换为熊猫数据框。作为其一部分,我还需要仅解析权重值。我不需要这个单位。

我还希望将数字值从字符串转换为数字。

任何帮助将不胜感激。我是python的新手。谢谢。

JSON示例:

{'id': '123', 'name': 'joe', 'weight': {'number': '100', 'unit': 'lbs'}, 
'gender': 'male'}

下面的示例输出:

id     name    weight    gender
123    joe     100       male

3 个答案:

答案 0 :(得分:1)

使用pandas.io.json中的“ import json_normalize”。

id     name    weight.number  weight.unit  gender
123    joe     100              lbs        male

答案 1 :(得分:0)

如果要放弃重量单位,只需将json展平:

temp = {'id': '123', 'name': 'joe', 'weight': {'number': '100', 'unit': 'lbs'}, 'gender': 'male'}
temp['weight'] = temp['weight']['number']

然后将其转换为数据框:

pd.DataFrame(temp)

答案 2 :(得分:0)

类似这样的事情应该可以解决:

json_data = [{'id': '123', 'name': 'joe', 'weight': {'number': '100', 'unit': 'lbs'}, 'gender': 'male'}]
# convert the data to a DataFrame
df = pd.DataFrame.from_records(json_data)
# conver id to an int
df['id'] = df['id'].apply(int)
# get the 'number' field of weight and convert it to an int
df['weight'] = df['weight'].apply(lambda x: int(x['number']))
df