从json转换后如何将列添加到数据框?

时间:2021-01-29 04:37:47

标签: python json pandas dataframe

这是我的代码。

def activeingredients(json):
    dfai= pd.io.json.json_normalize(json)
    print(dfai)
    return
activeingredients(jsonstr['results'][0]['drug'][0]['active_ingredients'])

我的输出。

<头>
姓名 dose.denominator_unit
二乙基氨基马嗪、奥苯达唑 未知

我有一个来自同一个嵌套 json 的唯一编号,与每个药物报告相对应。 如何将我的识别变量添加到我的函数中。

到目前为止我有这个。

def activeingredients(json):
    dfai= pd.io.json.json_normalize(json)
    id = df. iloc[:, 1] 
    print(id)
    print(type(id))
    print(dfai)
    return
        
activeingredients(jsonstr['results'][0]['drug'][0]['active_ingredients'])
activeingredients(jsonstr['results'])

需要在函数中加入唯一 id 并保留所有数据

我希望它看起来像这样。

<头>
姓名 dose.denominator_unit id
二乙基氨基马嗪、奥苯达唑 未知 1682

1 个答案:

答案 0 :(得分:0)

可以分享一个示例 json 吗?

假设 json 如下所示。 (来自描述)


  json_text =  '{
    "1" : {"name" : "Diethylcarbamazine, Oxibendazole", "dose" : "unknown"},
    "2" : {"name" : "ABC, Oxibendazole", "dose" : "unknown"},
    "3" : {"name" : "DEF, Oxibendazole", "dose" : "unknown"}
    }'

您需要执行以下步骤。

import json 

list_of_dicts= []
json_dict = json.loads(json_text)
for k, v in json_dict.items() :
    d = {"id" :k}
    d.update(v)
    list_of_dicts.append(d) 
   
df = pd.DataFrame(list_of_dicts)

希望这有效。谢谢。