如何在pandas中对含查找键的字符串列映射lookup表
Pandas从字符串中匹配查找表键值的解决方案
核心思路是将查找表的关键词整理为正则匹配规则,从源表字符串中提取匹配的关键词后,通过查找表映射得到对应值。
具体实现代码如下:
首先导入依赖并构造示例数据:
import pandas as pd # 源DataFrame示例 source_df = pd.DataFrame({ 'ColA': [ "Pete eats apple.", "I like chocolate more.", "Orange from Carla." ] }) # 查找表DataFrame示例 lookup_df = pd.DataFrame({ 'Col1': ['Orange', 'chocolate', 'apple'], 'Col2': ['orange', 'brown', 'green'] })
核心处理逻辑:
# 构造关键词到目标值的映射字典 color_mapping = dict(zip(lookup_df['Col1'], lookup_df['Col2'])) # 生成正则匹配规则 match_pattern = '|'.join(color_mapping.keys()) # 提取字符串中匹配的关键词,映射为对应颜色 source_df['Color'] = source_df['ColA'].str.extract(f'({match_pattern})', expand=False).map(color_mapping)
执行后输出source_df即可得到要求的结果:
| ColA | Color |
|---|---|
| Pete eats apple. | green |
| I like chocolate more. | brown |
| Orange from Carla. | orange |
如果需要适配不区分大小写的匹配场景,可以调整正则规则为f'(?i)({match_pattern})'即可
内容的提问来源于stack exchange,提问作者Fred
相关产品推荐
相关产品推荐

