Конвертировать Pandas DataFrame во вложенный dict со многими полями - PullRequest
0 голосов
/ 19 февраля 2020

Я хочу преобразовать pandas DataFrame во вложенный dict. Я видел похожий вопрос в стеке, но, к сожалению, мой случай немного отличается. Я хочу создать вложенный dict из DataFrame с примерно 15 столбцами, но только с 4 уровнями (используя 4 столбца для группировки). Остальные столбцы должны быть на том же уровне, что и соответствующий суффикс. На одном уровне может быть более одной записи (как поля ads или creatives ниже) Вот мои основные столбцы (группировка):

['id_site', 'id_placement', 'id_ad', 'id_creative']

И результат преобразования должен выглядеть следующим образом :

[
    {
        "id_site": "#site",
        "idDimensionValue_site": "",
        "keyName_site": "",
        "placements": [
            {
                "id_placement": "#placement",
                "idDimensionValue_placement": "",
                "advertiserId_placement": "",
                "ads": [
                    {
                        "id_ad": "#ad1",
                        "idDimensionValue_ad": "",
                        "advertiserId_ad": "",
                        "creatives": [
                            {
                                "id_creative": "#creative1",
                                "idDimensionValue_creative": "",
                                "advertiserId_pcreative": ""
                            },
                            {
                                "id_creative": "#creative2",
                                "idDimensionValue_creative": "",
                                "advertiserId_pcreative": ""
                            }
                        ]
                    },
                    {
                        "id_ad": "#ad2",
                        "idDimensionValue_ad": "",
                        "advertiserId_ad": "",
                        "creatives": [
                            {
                                "id_creative": "#creative1",
                                "idDimensionValue_creative": "",
                                "advertiserId_pcreative": ""
                            },
                            {
                                "id_creative": "#creative3",
                                "idDimensionValue_creative": "",
                                "advertiserId_pcreative": ""
                            }
                        ]
                    }
                ]
            }
        ]
    }
]
...