如何从excel获取字典的单个值的多个键

时间:2018-03-12 08:16:43

标签: python pandas dictionary

我有一张excel表,即

   0 first     |second    |third      |root
   1 credible  |credulous |credibility|cred
   2 cryptogram|cryptology|cryptic    |crypt
   3 aquatic   |aquarium  |aqueduct   |aqua


我想从上面提到的excel表中导入字典的键和值:
例如:  我写了一个字典代码来存储这个值

   new_dict = {
    ('credible','credulous','credibility') : 'cred',
    ('cryptogram','cryptology','cryptic')   : 'crypt'
    }

所以不要为字典中的每个单词写入键和值,而是要从excel导入,其中前3列(即第一,第二,第三)应该是键,最后一列(即根)将是a的值字典。有可能吗?
对不起我的英语不好。
感谢

2 个答案:

答案 0 :(得分:1)

使用set_index为每个列设置索引(在本例中为前三个)除了 root,然后调用root.to_dict

df.set_index(df.columns.difference(['root']).tolist()).root.to_dict() 
{
    ('aquatic', 'aquarium', 'aqueduct')      : 'aqua',
    ('credible', 'credulous', 'credibility') : 'cred',
    ('cryptogram', 'cryptology', 'cryptic')  : 'crypt'
}

答案 1 :(得分:1)

使用set_index前三列的Series.to_dict

d = df.set_index(['first','second','third'])['root'].to_dict()
print (d)
{('credible', 'credulous', 'credibility'): 'cred',
 ('aquatic', 'aquarium', 'aqueduct'): 'aqua', 
 ('cryptogram', 'cryptology', 'cryptic'): 'crypt'}