首页 > 解决方案 > 从数据框中获取 dict 哪些行包含许多值?

问题描述

输入

df 

A         B
a         23
b,c       34
d,e,%f    30

目标

df_dct = {'a':23,'b':34,'c':34,'d':'30','e':'30','f':30}

详情如下:

尝试

标签: pythonpandasdictionary

解决方案


您可以使用df.explode()for pandas >= 0.25with df.to_dict()

In [32]: df.A = df.A.str.replace("%", "")
In [42]: df_dct = df.assign(var1=df['A'].str.split(',')).explode('var1').drop('A', 1).set_index('var1').to_dict()['B'] 

In [43]: df_dct
Out[43]: {'a': 23, 'b': 34, 'c': 34, 'd': 30, 'e': 30, 'f': 30}

推荐阅读