从数据帧创建Dict

2024-09-28 01:29:13 发布

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

我正在尝试从DF创建字典,但没有得到所需的输出:

数据帧:

A      B   C    D  
0.0   0.0 NaN  NaN 
0.0   0.0 NaN  NaN 
0.0   0.0 NaN  NaN 
0.0   0.0 NaN  NaN 
0.0   0.0 NaN  NaN 

data_dict1 = adsl.to_dict('list')

当前输出:{'A': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}

所需输出:{'A': {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}}

区别在于方括号而不是花括号


Tags: to数据dfdata字典nandictlist
3条回答

根据您的评论回复,您似乎在为每个列寻找一组唯一的值。尝试:

data_dict1 = adsl.to_dict('list') # which you already have, then...
data_dict1 = {key: set(vals) for key, vals in data_dict1.items()}

这将满足您的要求,但它肯定会丢失您在数据帧上的任何排序

如果您有一个示例dfcreated fromadict

data = {'col_1': [3, 2, 1, 0], 'col_2': ['a', 'b', 'c', 'd']}
df = pd.DataFrame.from_dict(data)

你可以做:

data_dict = df.to_dict('dict')

data_dict将是:

{'col_1': {0: 3, 1: 2, 2: 1, 3: 0}, 'col_2': {0: 'a', 1: 'b', 2: 'c', 3: 'd'}}

如果只想保留col_1,可以使用thisdata_dict中删除col_2

data_dict.pop('col_2',None)

您的新data_dict将是:

{'col_1': {0: 3, 1: 2, 2: 1, 3: 0}}

您当前的输出已经是一个字典,将“a”映射到[0.0,0.0,…]

这不是有效的python表达式:

{'A':{0.0,0.0,....}}

但是

data_dict = df.to_dict() 

应该给你你想要的

相关问题 更多 >

    热门问题