我不确定标题是否正确,但这是我正在尝试做的事情,这应该是一个简单的任务。
我有一个字典:
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进行更新。
我敢肯定有一个简单的解决方案,但是我似乎找不到。有谁知道用字典执行此操作的正确方法?
再次,我需要使用字典。
答案 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] = ...