通过逐行迭代熊猫中的数据帧来创建字典

时间:2020-07-22 07:53:56

标签: python pandas dictionary

这是一个简单的dataframe

sample=pd.DataFrame({'Budjet_id':['K1','K2','K3'],'cost':[20000,30000,4000]})
sample 
   Budjet_id    cost
0       K1     20000
1       K2     30000
2       K3     4000

将其转换为字典,并将其嵌入到另一个这样的字典中。

 data={}
 data['work'] = 'Budget'
 data['data_sample']=[{m:sample.values[i][n] for n, m in enumerate(sample.columns)} for i in range(0,len(sample))]
 data

这给出了以下输出。

{'work': 'Budget',
 'data_sample': [{'Budjet_id': 'K1', 'cost': 20000},
                 {'Budjet_id': 'K2', 'cost': 30000},
                 {'Budjet_id': 'K3', 'cost': 4000}]}

但是预期的输出如下。

{'work': 'Budget','data_sample':{'Budjet_id':'K1','cost':'20000'},
               'data_sample':{'Budjet_id':'K2','cost':'30000'},
                'data_sample':{'Budjet_id':'K2','cost':'4000'}}

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

{'work': 'Budget','data_sample':{'Budjet_id':'K1','cost':'20000'},
           'data_sample':{'Budjet_id':'K2','cost':'30000'},
            'data_sample':{'Budjet_id':'K2','cost':'4000'}}

如果这是您想要的输出,则它不是有效的字典,因为同一键有多个数据。

相关问题