我有以下示例数据:
class name
Pref Ab
Val BE
Base es
Pref Cw
Base SS
此数据在一个数据框中,我需要为class:name创建一个映射,如下所示:
Pref : ['Ab','Cw'],
Val : ['BE'],
Base : ['es','SS']
这将是一个字典,其中将包含类及其组件名称的映射。键将是类,并且其值将是该类中的名称,因此每个类的值列表将有所不同,其中每个列表的长度可能会有所不同类。有人可以帮我吗?
您需要寻找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] 删除。
我来说两句