ラーフルラジャン:
私は以下のようなデータフレームを持っています:
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"
}
}
}
どのようにこれはPythonで行うことができますか?
戦争:
まず、あなたのデータフレームの列をループにする必要があります。
そして、それぞれの行で、あなたは辞書を作成します。完全なアイデアは、このようなものです:
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)