Преобразование кадра данных Pandas во вложенный JSON - PullRequest
1 голос
/ 18 октября 2019

У меня есть датафрейм в пандах с 39 переменными. Мне нужно преобразовать это в формат JSON таким образом, чтобы он имел 3 ключа. Например,

{"Key1":"Var1","Key2":{"Var2":"25","Var3":"10","Var4":"5","Var5":"2"},"Key3":{"Var6":"1","Var7":"0","Var8":"10"}}

также нужны значения, связанные с переменными в виде строки

. Любая помощь будет высоко оценена!

1 Ответ

0 голосов
/ 18 октября 2019

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

Сначала я импортирую пакеты и создам пример набора данных:

import pandas as pd
import json

df = pd.DataFrame(
    [
        {'Var1': 23, 'Var2': 25, 'Var3': 10, 'Var4': 5, 'Var5': 2, 'Var6': 1, 'Var7': 0, 'Var8': 10},
        {'Var1': 24, 'Var2': 26, 'Var3': 11, 'Var4': 6, 'Var5': 3, 'Var6': 2, 'Var7': 1, 'Var8': 11},
        {'Var1': 25, 'Var2': 27, 'Var3': 12, 'Var4': 7, 'Var5': 4, 'Var6': 3, 'Var7': 2, 'Var8': 12},
        {'Var1': 26, 'Var2': 28, 'Var3': 13, 'Var4': 8, 'Var5': 5, 'Var6': 4, 'Var7': 3, 'Var8': 13},
    ]
)

print(df)

Код выдает следующие выходные данные:

   Var1  Var2  Var3  Var4  Var5  Var6  Var7  Var8
0    23    25    10     5     2     1     0    10
1    24    26    11     6     3     2     1    11
2    25    27    12     7     4     3     2    12
3    26    28    13     8     5     4     3    13

Теперь я покажу вам основную часть кода:

with open('test_json_file.json', 'w') as file:
    for i, row in df.iterrows():
        json_to_save = {
            "Key1": str(row.Var1),
            "Key2": {
                "Var2": str(row.Var2),
                "Var3": str(row.Var3),
                "Var4": str(row.Var4),
                "Var5": str(row.Var5)
            },
            "Key3": {
                "Var6": str(row.Var6),
                "Var7": str(row.Var7),
                "Var8": str(row.Var8)
            }
        }
        file.write(json.dumps(json_to_save) + '\n')

Код создает файл test_json_file.json и сохраняет json_to_save json, определенный в цикле for для новой строки в файле, например, дляВ первой строке файла вы найдете этот json: {"Key1": "23", "Key2": {"Var2": "25", "Var3": "10", "Var4": "5", "Var5": "2"}, "Key3": {"Var6": "1", "Var7": "0", "Var8": "10"}}.

Надеюсь, это поможет.

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