从datafram的列创建python字典

2024-05-28 20:50:55 发布

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

我有以下样本数据:

class   name
Pref    Ab
Val     BE
Base    es
Pref    Cw
Base    SS

此数据在dataframe中,我需要为class:name创建一个映射,如下所示:

^{pr2}$

这将是一个字典,它将包含类及其组件的映射名字。那个key将是class,它的值将是该类中的名称,因此每个类的值列表,其中每个类的列表长度可能不同。 有人能帮我吗?在


Tags: 数据namedataframe列表baseabesval
1条回答
网友
1楼 · 发布于 2024-05-28 20:50:55

你要找的是groupby+to_dict操作-

r = df.groupby('class').name.apply(list).to_dict()

或者

^{pr2}$

r
{'Base': ['es', 'SS'], 'Pref': ['Ab', 'Cw'], 'Val': ['BE']}

工作原理-

  • {cd3>列由^个类别组成。我们希望每个类别都作为索引。在
  • 此外,name列中的每个元素都需要按类分组并显示在一个列表中

因此,groupby操作是这里要做的最简单的事情。使用list分组并应用/聚合以获得索引如下的序列-

class
Base    [es, SS]
Pref    [Ab, Cw]
Val         [BE]
Name: name, dtype: object

在此调用to_dict可以得到您想要的结果。在

相关问题 更多 >

    热门问题