将数据帧groupby columns转换为di

2024-09-30 02:16:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据帧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}]]}

建议我怎么做。你知道吗


Tags: 数据df建议dictgroupbydig代码运行importance
1条回答
网友
1楼 · 发布于 2024-09-30 02:16:59

一种方法是groupby-on-Dig,就像您正在做的那样,但是在apply中调用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}]}

相关问题 更多 >

    热门问题