어떻게 파이썬에서 판다의 dataframe에서 중첩 된 JSON 파일을 만들 수 있습니까?

라훌 라잔 :

나는 다음과 같은 dataframe 있습니다 :

 df.head(2)

Ord MOT  MVT  CUST  CreationSla  CreationPlanned CreationProposed  PickupSla  PickupPlanned PickupProposed
 12  TR    TT   DEA  12-3-2020      12-3-2020      12-3-2020       14-3-2020   14-3-2020    14-3-2020
 15  ZR    TD   DET  15-3-2020      15-3-2020      15-3-2020       16-3-2020   16-3-2020    16-3-2020

나는 형식 아래에서 중첩 된 JSON 파일을 만들려면 :

예상 출력

{
    "Ord" : "12",
    "MOT" : "TR",
    "MVT" : "TT",
    "CUST" : "DEA",
    "milestone" : {
        "creation" : {
            "sla" : "12-3-2020",
            "plan" : "12-3-2020",
            "proposed" : "12-3-2020"
        },
        "Pickup" : {
            "sla" : "14-3-2020",
            "plan" : "14-3-2020",
            "proposed" : "14-3-2020"
        }
    }
}

어떻게 파이썬에서 할 수 있는가?

전쟁 :

첫째로, 당신은 당신의 dataframe의 행을 통해 루프가 필요합니다.

그런 다음 각 행에, 당신은 사전을 만들 수 있습니다. 전체 아이디어는 다음과 같이이다 :

result = []
predefined_columns = ['Creation', 'Pickup', 'Departure']
mapping_cl = []
for column in df.columns:
    flag = False
    for sub_str in predefined_columns:
        if sub_str in column:
            flag = True
            mapping_cl.append(sub_str)
            break
    if not flag:
        mapping_cl.append(False)
for index, row in df.iterrows():
    item = {}
    for cl in mapping_cl:
        if cl:
            item[cl] = {}
    for i, column in enumerate(df.columns):
        if mapping_cl[i]:
            cl_name = column.split(mapping_cl[i])[-1]
            item[mapping_cl[i]][cl_name] = row[column]
        else:
            item[column] = row[column]
    result.append(item)

지금 result의 목록입니다 dict당신이 원하는대로가여기에 이미지 설명을 입력

추천

출처http://10.200.1.11:23101/article/api/json?id=383875&siteId=1