如何有效地使用字典和键列表来查找值列表

How to efficiently use a dictionary and a list of keys to find a list of values

例如,我有一个 pandas 数据框 df 是这样的:

    A  B
0  12  ['key1', 'key2']
1  23  ['key3', 'key4']

我有一本这样的字典 dic

{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}

并且我想生成一个列 df['C'] 使得其中列表中的每个元素都是与 df['B']:

列表中的键对应的值
    A  B                 C
0  12  ['key1', 'key2']  ['value1', 'value2']
1  23  ['key3', 'key4']  ['value3', nan]

我怎样才能以高效的方式实现这一点?谢谢!

一种方法是使用函数

def check_dictionary(list_of_keys):
    return [dic[x] for x in list_of_keys if x in dic]
df['C']=df['B'].apply(check_dictionary)

另一种方法是使用 lambda:

df['C']=df['B'].apply(lambda row: [dic[key] for key in row if x in dic]