首页 > 解决方案 > 将字符串与查找表进行比较并执行替换

问题描述

我想遍历 Python 中的一串值dataframe,并将该字符串中的每个值与查找表中的键进行比较。如果匹配,我们用查找表中的值替换。

数据框如下所示:

index   String
1       ['a','b','c']
2       ['d','e','f','g','h']
3       ['i','j']

查找表如下所示:

key  value
---  -----
a    apple
b    book
c    clock
d    duck
e    else
f    far
g    girl
h    hour
i    ink
j    juice

预期结果应如下所示:

index   String
1      ['apple','book','clock']
2      ['duck','else','far','girl','hour']
3      ['ink','juice']

我知道我应该使用isin()函数来检查第一列中的值是否存在,但现在知道如何进行替换。有什么建议么?

标签: pythonpandas

解决方案


试试这个:

df = pd.DataFrame({'String': [['a','b','c'], ['d','e','f','g','h'], ['i','j']]})

mymap = {
'a':   'apple',
'b':    'book',
'c':    'clock',
'd':    'duck',
'e':    'else',
'f':    'far',
'g':    'girl',
'h':    'hour',
'i':    'ink',
'j':    'juice'
}

df['String'] = df['String'].apply(lambda x: [mymap.get(i) for i in x])

df

输出:

                          String
0           [apple, book, clock]
1  [duck, else, far, girl, hour]
2                   [ink, juice]

推荐阅读