如何从数据帧创建字典?

2024-06-28 10:53:54 发布

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

dataframe如下所示:

ENV   INVOCATION SSM_ID ANA_ID   VALUE  
env1   invo1      A      oas      1.6  
env1  invo1      A      default  2.0  
env1  invo1      B      oas      0.8  
env1  invo2      C      oas      0.4  
env2  invo1      A      oas      3.1  
env2  invo2      B      default  0.6  

我想要一本像下面这样的字典

dic = {(env1,invo1,A,oas) : 1.6 , (env1,invo1,A,default) : 2.0 , (env1,invo1,B,oas) : 0.8 , (env1,invo2,C,oas) : 0.4 , (env2,invo1,A,oas) : 3.1 , (env2,invo2,B,default) : 0.6 }

Tags: enviddefaultdataframe字典valuessmdic
2条回答

只对除VALUE以外的所有列执行set_index

print (df.set_index(list(df.columns[:-1]))["VALUE"].to_dict())

{('env1', 'invo1', 'A', 'oas'): 1.6,
 ('env1', 'invo1', 'A', 'default'): 2.0,
 ('env1', 'invo1', 'B', 'oas'): 0.8,
 ('env1', 'invo2', 'C', 'oas'): 0.4,
 ('env2', 'invo1', 'A', 'oas'): 3.1,
 ('env2', 'invo2', 'B', 'default'): 0.6}

运行:

dict = df.set_index(['ENV', 'INVOCATION', 'SSM_ID', 'ANA_ID']).VALUE.to_dict()

相关问题 更多 >