python - 将字符串与查找表进行比较并执行替换
问题描述
我想遍历 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()
函数来检查第一列中的值是否存在,但现在知道如何进行替换。有什么建议么?
解决方案
试试这个:
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]
推荐阅读
- parsing - ANTLR - 如何丢弃(免费)令牌,以便能够解析大文件
- c# - 使用委托、静态方法和多播将函数作为参数传递
- python - 来自 dynamo 的 Python 解析查询 - TypeError:列表索引必须是整数或切片,而不是 str
- php - 从 WooCommerce 中的类别价格后缀更改中排除特定产品 ID
- flutter - 如何在地图上用颜色发现不同的位置?
- c# - C# 中的非英语复数形式
- angular - SSL证书的角度问题
- flutter - Flutter - DropdownButton onChanged 返回 null
- python - 如何加快代码从字典列表中获取数据
- sql-server - 如何将 OPTION (MAXRECURSION 0) 与 cte insert 一起使用到临时表中