Как преобразовать ряды в столбцы в пандах - PullRequest
0 голосов
/ 28 августа 2018

У меня есть структура ввода:

[{"id": 1, "name": "John", "events": [{"date": "2018-10-10", "value": 1}]}, 
 {"id": 2, "name": "Kyle", "events": [{"date": "2018-11-10", "value": 2}]}]

После загрузки в DataFrame события сохраняются как Series. Мне нужно преобразовать серию событий в столбцы, например:

id name 2018-10-10 2018-11-10
1  John 1 0
2  Kyle 0 2

как сплющить эту структуру в пандах?

1 Ответ

0 голосов
/ 28 августа 2018

Использование json_normalize с set_index и unstack:

L = [{"id": 1, "name": "John", "events": [{"date": "2018-10-10", "value": 1}]}, 
     {"id": 2, "name": "Kyle", "events": [{"date": "2018-11-10", "value": 2}]}]

from pandas.io.json import json_normalize

df = json_normalize(L, 'events', ['id','name'])
df = (df.set_index(['id','name','date'])['value']
        .unstack(fill_value=0)
        .reset_index()
        .rename_axis(None, axis=1))
print (df)
   id  name  2018-10-10  2018-11-10
0   1  John           1           0
1   2  Kyle           0           2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...