【发布时间】:2021-04-25 10:25:22
【问题描述】:
我有一个由医疗记录组成的数据框,看起来像这样
我的计划是将它转换为一个看起来像这样的字典列表
{"parameters" : [{
"parameterCode" : 27162,
"parameterName" : "MPV (Mean Platelet Volume)",
"unit" : "fL",
"result" : 12.3,
"uRange" : 12.0,
"lRange" : 6.5
},
{
"parameterCode" : 29789,
"parameterName" : "Platelet Count",
"unit" : "thou/mm3",
"result" : 156,
"uRange" : 150.00,
"lRange" : 450.0
}]
}
最初,我尝试了df.to_dict('dict'),但这使每个列标签成为一个键,其值是一个字典,每个键是行索引,值作为该列标签的对应值。
(下面的文字会更清楚)
{
'Parameter Name': {
27162: 'MPV (Mean Platelet Volume)',
29789: 'Platelet Count',
29790: 'Segmented Neutrophils',
29791: 'Lymphocytes',
29792: 'Monocytes',
29793: 'Eosinophils',
29794: 'Basophils',
29795: 'Neutrophils',
29796: 'Lymphocytes',
29797: 'Monocytes',
29798: 'Eosinophils',
29799: 'Basophils',
29806: 'Hemoglobin',
29807: 'Packed Cell Volume (PCV)',
29808: 'Total Leukocyte Count (TLC)',
29809: 'RBC Count',
29810: 'MCV',
29811: 'MCH',
29812: 'MCHC',
29813: 'Red Cell Distribution Width (RDW)'
},
'Units': {
27162: 'fL',
29789: 'thou/mm3',
29790: '%',
29791: '%',
29792: '%',
29793: '%',
29794: '%',
29795: 'thou/mm3',
29796: 'thou/mm3',
29797: 'thou/mm3',
29798: 'thou/mm3',
29799: 'thou/mm3',
29806: 'g/dL',
29807: '%',
29808: 'thou/mm3',
29809: 'mill/mm3',
29810: 'fL',
29811: 'pg',
29812: 'g/dL',
29813: '%'
},
'Result': {
27162: '12.3',
29789: '156',
29790: '72',
29791: '22',
29792: '3.7',
29793: '1.8',
29794: '0.5',
29795: '6.74',
29796: '2.06',
29797: '0.35',
29798: '0.17',
29799: '0.05',
29806: '7',
29807: '26.7',
29808: '9.36',
29809: '3.54',
29810: '75.4',
29811: '19.8',
29812: '26.2',
29813: '17.8'
},
'Low Range': {
27162: 6.5,
29789: 150.0,
29790: 40.0,
29791: 20.0,
29792: 2.0,
29793: 1.0,
29794: nan,
29795: 2.0,
29796: 1.0,
29797: 0.2,
29798: 0.02,
29799: 0.01,
29806: 11.5,
29807: 36.0,
29808: 4.0,
29809: 3.8,
29810: 80.0,
29811: 27.0,
29812: 32.0,
29813: 11.5
},
'High Range': {
27162: 12.0,
29789: 450.0,
29790: 80.0,
29791: 40.0,
29792: 10.0,
29793: 6.0,
29794: 2.0,
29795: 7.0,
29796: 3.0,
29797: 1.0,
29798: 0.5,
29799: 0.1,
29806: 15.0,
29807: 46.0,
29808: 10.0,
29809: 4.8,
29810: 100.0,
29811: 32.0,
29812: 35.0,
29813: 14.5
}
}
我正在尝试的一些背景知识(不是问题的一部分)
我的最终目标是将这个dict 转换为JSON,以便我们的API 更容易读取它。所以,如果你有更好的建议,请告诉我。
我正在尝试转换此医疗数据
到一个看起来像这样的 JSON。
{
"labNumber": 279687825,
"age": 57,
"dataPanel": [
{
"panel_code": "Z021",
"panel_name": "COMPLETE BLOOD COUNTCBC",
"parameters": [
{
"parameterCode": 27162,
"parameterName": "MPV (Mean Platelet Volume)",
"unit": "fL",
"result": 12.3,
"uRange": 12.0,
"lRange": 6.5
},
{
"parameterCode": 29789,
"parameterName": "Platelet Count",
"unit": "thou/mm3",
"result": 156,
"uRange": 150.0,
"lRange": 450.0
}
]
}
]
}
【问题讨论】:
-
那么有两个转换问题?
-
第一个是问题。我只是想就我想要实现的目标提供一些背景知识。
标签: python json pandas dictionary data-conversion