从数据框的列在python中创建字典

Shuvayan Das

我有以下示例数据:

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

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

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

这将是一个字典,其中将包含类及其组件名称的映射。键将是类,并且其值将是该类中的名称,因此每个类的值列表将有所不同,其中每个列表的长度可能会有所不同类。有人可以帮我吗?

cs95

您需要寻找groupby+to_dict操作-

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

要么,

r = df.groupby('class').name.agg(pd.Series.tolist).to_dict()

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

这个怎么运作 -

  • class列包括3个类别。我们希望每个类别都作为索引。
  • 此外,该name列中的每个元素都需要按类别进行分组并显示在列表中

由此可见,groupby操作是此处最简单的操作。分组并应用/聚集在一起list以获得具有索引​​的序列-

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

调用to_dict此命令可以满足您的需求。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章