У меня нет идеи преобразовать несколько кадров данных в 3 слоя файла JSON.
Во-первых, я преобразовал следующие данные JSON в несколько кадров данных.
data={
"John Peterson": {
"age": 20,
"address": "Turku",
"occupation": "Doctor"
},
"John Munoz": {
"age": 26,
"address": "Oulu",
"occupation": "Nurse"
}}
, используя следующий код:
df = pd.DataFrame(data, columns=["age", "address", "occupation"])
df.index.name = "fullname"
# Last name
df["lastname"] = df.index.astype(str).str.split().str[1]
name = df.groupby(df.lastname).size().reset_index().rename(columns={0: "n_count"})
age = (
df.groupby([df.lastname, df.age])
.size()
.reset_index()
.rename(columns={0: "age_count"})
)
address = (
df.groupby([df.lastname, df.address])
.size()
.reset_index()
.rename(columns={0: "addr_count"})
)
occupation = (
df.groupby([df.lastname, df.occupation])
.size()
.reset_index()
.rename(columns={0: "occu_count"})
)
Затем я попытался l oop фреймы данных и построил JSON:
dict={}
for i,n in name.iterrows():
dict[n.lastname]['count']=n.n_count
for a, ag in age.iterrows():
dict[n.lastname]['count'][ag.age]=ag.age_count
Это вызвало у меня ошибку из-за возраст.
Мой ожидаемый результат выглядит следующим образом:
{
'lastname1': {
'count': number_of_people,
'age': {
'age1': occurence,
'age2': occurence
},
'address': {
'address1': occurence,
'address2': occurence
},
'occupation': {
'job1': occurence
}
}
}