Pandas DataFrame групповые столбцы для диктовки - PullRequest
0 голосов
/ 06 сентября 2018

Мой фрейм данных с именем df выглядит как

Dig CUI importance 2240 a123 0.28912 2240 b123 0.39021 2230 x133 0.12923 3330 cak2 0.12903 3330 xa45 0.21093 3330 2429 0.21893

На вышеупомянутом кадре данных я запускаю его через следующий код,

df = (df.groupby('dig').apply(lambda x: dict(zip(x['cui'],x['importance']))).to_dict())

Я получаю вывод как

{2240:{a123:0.28912, b123:0.39021},2230:{x133:0.12923},3330:{cak2: 0.12903, xa45:0.21093, 2429:0.21893}}

Но мне нужны столбцы в выходном словаре. Мне нужны предложения

вывод должен быть как

{2240:[{cui:a123, importance:0.28912},{cui:b123, importance:0.39021}],2230:[{cui:x133, importance:0.12923},3330:[{cui:cak2, importance:0.12903},{cui:xa45, importance:0.21093},{cui:2429, importance:0.21893}]]}

Предложите мне способы сделать это.

1 Ответ

0 голосов
/ 06 сентября 2018

Один из подходов состоит в группировании на Dig, как вы делаете, но звоните to_dict('records') внутри заявки:

In [103]: df.groupby("Dig").apply(lambda x: x.drop("Dig", 1).to_dict('records')).to_dict()
Out[103]: 
{2230: [{'CUI': 'x133', 'importance': 0.12922999999999998}],
 2240: [{'CUI': 'a123', 'importance': 0.28912},
  {'CUI': 'b123', 'importance': 0.39021}],
 3330: [{'CUI': 'cak2', 'importance': 0.12903},
  {'CUI': 'xa45', 'importance': 0.21093},
  {'CUI': '2429', 'importance': 0.21893}]}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...