Yogita Gupta
Yogita Gupta

Reputation: 11

How do we create a dictionary from a dataframe?

dataframe is like below:

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  

I want a dictionary like below

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 }

Upvotes: 1

Views: 104

Answers (2)

Valdi_Bo
Valdi_Bo

Reputation: 31011

Run:

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

Upvotes: 2

Henry Yik
Henry Yik

Reputation: 22503

Just set_index to all the columns except VALUE:

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}

Upvotes: 2

Related Questions