Как реализовать ту же концепцию в Python? - PullRequest
0 голосов
/ 02 мая 2020

enter image description here

Итак, это данные, расположенные в pandas кадре данных, и я хочу создать json, как это (показано ниже), используя иерархию, упомянутую в столбец pathString. Пожалуйста, скажите мне, как я могу добиться этого за python?

{
    "name":"world",
    "children":[
        {
            "name":"North America",
            "children":[
                {
                    "name":"Bermuda",
                    "continent":"North America",
                    "country":"Bermuda",
                    "GNI":106140,
                    "iso3":"BMU",
                    "population":67837
                    },
                {
                    "name":"United States",
                    "continent":"North America",
                    "country":"United States",
                    "GNI":55200,
                    "iso3":"USA",
                    "population":313973000
                    },
                {
                    "name":"Canada",
                    "continent":"North America",
                    "country":"Canada",
                    "GNI":51630,
                    "iso3":"CAN",
                    "population":33487208
                },
                {
                    "name":"Bahamas, The",
                    "continent":"North America",
                    "country":"Bahamas, The",
                    "GNI":20980,
                    "iso3":"BHS",
                    "population":309156
                    }
                    ]
        },
        {
            "name":"Europe",
            "children":[
                {
                    "name":"Norway","continent":"Europe","country":"Norway","GNI":103630,"iso3":"NOR","population":4676305
                },
                {
                    "name":"Switzerland","continent":"Europe","country":"Switzerland","GNI":88120,"iso3":"CHE","population":7604467
                },
                {"name":"Luxembourg","continent":"Europe","country":"Luxembourg","GNI":75990,"iso3":"LUX","population":491775
                }
                ]
        }

    ]}

Я пытался использовать рекурсию, но не смог реализовать ее должным образом. Ребята помогите пожалуйста если можно, я застрял в этой проблеме надолго! Нужна скорая помощь, если это возможно! Заранее спасибо!

1 Ответ

0 голосов
/ 02 мая 2020

Будет намного проще, если вы разделите столбцы pathString, чтобы у вас было больше 3 столбцов:

World | Continent | Country

. С этими столбцами вы можете применить групповую операцию и использовать to_json:

(
   df.groupby(['World','Continent','Country'], as_index=False)
   .reset_index()
   .to_json(orient='records'))
)

Пожалуйста, в следующий раз разместите здесь ссылку на файл таблицы, чтобы вам было легче помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...