[英]Convert Pandas Dataframe or csv file to Custom Nested JSON
我有一個 csv 文件,其 DF 結構如下:
我的 dataframe:
我想使用 python 將數據輸入到以下 JSON 格式。 我查看了幾個鏈接(但我在嵌套部分迷路了)。 我檢查的鏈接:
如何將 pandas dataframe 轉換為結構獨特的嵌套 json
"PHI": 2,
"firstname": "john",
"medicalHistory": {
"allergies": "egg",
"event": {
"inPatient":{
"hospitalized": {
"visit" : "7-20-20",
"noofdays": "5",
"test": {
"modality": "xray"
}
"vitalSign": {
"temperature": "32",
"heartRate": "80"
},
"patientcondition": {
"headache": "1",
"cough": "0"
}
},
"icu": {
"visit" : "",
"noofdays": "",
},
},
"outpatient": {
"visit":"5-20-20",
"vitalSign": {
"temperature": "32",
"heartRate": "80"
},
"patientcondition": {
"headache": "1",
"cough": "1"
},
"test": {
"modality": "blood"
}
}
}
}
如果有人可以幫助我處理嵌套數組,那將非常有幫助。
您需要一個或多個輔助函數來解壓縮表中的數據,如下所示。 編寫主助手 function 以接受兩個 arguments:1. df 和 2. schema。 該模式將用於將 df 解壓縮為 df 中每一行的嵌套結構。 下面的架構是如何為您描述的邏輯子集實現此目的的示例。 雖然不完全是您在示例中指定的內容,但應該足以提示您自己完成任務的 rest。
from operator import itemgetter
groupby_idx = ['PHI', 'firstName']
groups = df.groupby(groupby_idx, as_index=False, drop=False)
schema = {
"event": {
"eventType": itemgetter('event'),
"visit": itemgetter('visit'),
"noOfDays": itemgetter('noofdays'),
"test": {
"modality": itemgetter('test')
},
"vitalSign": {
"temperature": itemgetter('temperature'),
"heartRate": itemgetter('heartRate')
},
"patientCondition": {
"headache": itemgetter('headache'),
"cough": itemgetter('cough')
}
}
}
def unpack(obj, schema):
tmp = {}
for k, v in schema.items():
if isinstance(v, (dict,)):
tmp[k] = unpack(obj, v)
if callable(v):
tmp[k] = v(obj)
return tmp
def apply_unpack(groups, schema):
results = {}
for gidx, df in groups:
events = []
for ridx, obj in df.iterrows():
d = unpack(obj, schema)
events.append(d)
results[gidx] = events
return results
unpacked = apply_unpack(groups, schema)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.