Преобразование данных в словарях в строки - PullRequest
0 голосов
/ 16 мая 2018

У меня есть CSV-файл в следующем формате:

id    data
1     [{'name':'Day 1', 'data':[12,13]},{'name':'Day 2', 'data':[34,45]}]

и я хочу это в формате ниже:

id    name     index    data
1     Day 1    0        12
1     Day 1    1        13
1     Day 2    0        34
1     Day 2    1        45 

Я пытался сделать pd.apply (Series) для столбца данных, но он только разделил словари на свои собственные столбцы. Есть идеи, как это сделать?

Спасибо !!

1 Ответ

0 голосов
/ 16 мая 2018

Мой ответ - король избыточный, используя apply(pd.Series), пару раз

(df.set_index('id').data
   .apply(pd.Series)
   .stack()
   .apply(pd.Series)
   .set_index('name',append=True).data
   .apply(pd.Series)
   .stack()
   .reset_index()
   .drop('level_1',axis=1)
)

   id   name  level_3   0
0   1  Day 1        0  12
1   1  Day 1        1  13
2   1  Day 2        0  34
3   1  Day 2        1  45
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...