Как сделать pandas dataframe с вложенными столбцами из списка вложенных dicts - PullRequest
1 голос
/ 16 июня 2020

У меня есть список data, содержащий словари с этой схемой:

{'id': '123',
 '2020-06-15': {'A': 1, 'B': 2, 'C': 3, 'D': 4},
 '2020-06-16': {'A': 5, 'B': 6, 'C': 7, 'D': 8}}

Когда я использую df = pandas.DataFrame(data).set_index("id") для создания фрейма данных, я получаю эту таблицу:

                           2020-06-15                        2020-06-16
id
123  {'A': 1, 'B': 2, 'C': 3, 'D': 4}  {'A': 5, 'B': 6, 'C': 7, 'D': 8}

И когда я использую df = pandas.json_normalize(data), я получаю это:

     id  2020-06-15.A  2020-06-15.B  2020-06-15.C  2020-06-15.D  2020-06-16.A  2020-06-16.B  2020-06-16.C  2020-06-16.D
0   123             1             2             3             4             5             6             7             8 

Но предпочтительный результат таков:

     2020-06-15  2020-06-16
id   A  B  C  D  A  B  C  D
123  1  2  3  4  5  6  7  8

Есть ли способ сделать это?

1 Ответ

1 голос
/ 16 июня 2020

Создать индекс по столбцу id, а затем использовать str.split:

df = df.set_index('id')
df.columns = df.columns.str.split('.', expand=True)
print (df)
    2020-06-15          2020-06-16         
             A  B  C  D          A  B  C  D
id                                         
123          1  2  3  4          5  6  7  8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...