【问题标题】:create a dictionary in python from columns of a dataframe从数据框的列在 python 中创建字典
【发布时间】:2018-01-01 06:50:10
【问题描述】:

我有以下示例数据:

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

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

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

这将是一个字典,其中包含类及其组件名称的映射。键将是类,其值将是该类中的名称,因此每个类的值列表,其中列表长度可能因每个班级而异。 有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: python pandas dictionary key-value


    【解决方案1】:

    您正在寻找 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 可以满足您的需求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-12
      • 1970-01-01
      相关资源
      最近更新 更多