我有一个嵌套的JSON,如下所示。我想将其转换为熊猫数据框。作为其一部分,我还需要仅解析权重值。我不需要这个单位。
我还希望将数字值从字符串转换为数字。
任何帮助将不胜感激。我是python的新手。谢谢。
JSON示例:
{'id': '123', 'name': 'joe', 'weight': {'number': '100', 'unit': 'lbs'},
'gender': 'male'}
下面的示例输出:
id name weight gender
123 joe 100 male
答案 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