如果dict键中的行为[0] [value],则为key [1] [value]

时间:2018-08-03 13:28:42

标签: python

我不确定标题是否正确,但这是我正在尝试做的事情,这应该是一个简单的任务。

我有一个字典:

dict = {u'a': {0: u'1', 1: u'2'}, u'b': {0: u'A', 1: u'B'}}
然后我有一个数据框。

Num       Letter
1           
3          C
4          D

我想做的是

for index, row in df.iterrows():
    if row[0] in dict['a'].values():
    [row[1]] = dict['b'[0]] <- this isn't correct, but is what i'm trying to do

所以我想从字典中计算出数据帧中row [1]的值。

我知道我可以将dict转换为df并进行合并,追加等操作,但是我需要使用dict进行更新。

我敢肯定有一个简单的解决方案,但是我似乎找不到。有谁知道用字典执行此操作的正确方法?

再次,我需要使用字典。

1 个答案:

答案 0 :(得分:1)

我猜您正在寻找更多类似的东西:

if row[0] in d['a'].values():
    row[1] = d['b'][row[0]]

我在这里做了几件事。首先,dict是内置的Python函数,因此我将您的字典命名为d,以免与它冲突。

第二,在此表达式中:

d['b'[0]]

从内到外读取它,它采用字符串'b',采用它的第一个字母,然后在字典中查找。如果您将其重写为:

d['b'][row[0]]

它在字典中查找键'b',然后在结果字典中获取键为row[0]的元素。

最后,在左侧:

[row[1]] = ...

不是有效的分配。您只想设置现有数组的第二个值,这样就可以写

row[1] = ...