라훌 라잔 :
나는 다음과 같은 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)