Вложенные значения из значения Json - PullRequest
0 голосов
/ 19 марта 2020

Из файла json я знаю, что вы можете использовать json_normalize для преобразования указанного json файла в pandas Dataframe. Когда есть вложенные словари, json_normalize сглаживает их. Однако для моего файла json вложенные словари находятся в списке, см. Var2 ниже. Как мне получить доступ к элементам в Var2 и преобразовать их в собственный фрейм данных?

from pandas.io.json import json_normalize
data = [
        {"Id":1,"Var1":2,"Var2":[{"Var2.1":4,"Var2.2":3}],"Var3":3},
        {"Id":2,"Var1":2,"Var2":[{"Var2.1":4}],"Var3":3},
        {"Id":3,"Var1":2,"Var2":[{"Var2.1":4,"Var2.2":3,"Var2.3":2}],"Var3":3}
        ]
df = json_normalize(data)

Я пробовал df["Var2"].apply(json_normalize), но это привело к действительно странному выводу.

Как другие решают эту проблему?

1 Ответ

3 голосов
/ 19 марта 2020
from pandas.io.json import json_normalize
df = json_normalize(data)
df['Var2'] = df['Var2'].apply(pd.Series)

result = df['Var2'].apply(pd.Series)

df:

Id  Var1    Var2                                    Var3
0   1   2   {'Var2.1': 4, 'Var2.2': 3}              3
1   2   2   {'Var2.1': 4}                           3 
2   3   2   {'Var2.1': 4, 'Var2.2': 3, 'Var2.3': 2} 3

результат:

    Var2.1  Var2.2  Var2.3
0   4.0     3.0     NaN
1   4.0     NaN     NaN
2   4.0     3.0     2.0
...