Python如何映射拼接两个Pandas DataFrame的值生成指定字段
实现代码
首先构建Code到目标格式的映射字典,再批量处理第二个DataFrame的Code字段即可,完整代码如下:
import pandas as pd # 初始化两个示例DataFrame first = pd.DataFrame({'Code': [1,2,3,4],'Value': ['Apple','Orange','Bannana', 'Graps']}) second = pd.DataFrame({'Code': ['1','2','1','2,4','3'],'Product id': ['A','B','C', 'D','E']}) # 生成映射字典:key为字符串类型的Code,value为要求的「Value(Code)」格式 code_map = {str(code): f"{val}({code})" for code, val in zip(first['Code'], first['Value'])} # 处理多Code拆分、映射、拼接 second['Required Field'] = second['Code'].apply( lambda x: ','.join([code_map[code_item] for code_item in x.split(',')]) ) # 得到最终的third DataFrame third = second.copy()
补充说明
- 示例中已将原first DataFrame里的笔误
Ornage修正为Orange,和目标输出对齐,如果原数据保留拼写,修改first里的对应值即可自动适配映射结果 - 如果存在second的Code值不在first的Code范围内的场景,可以把映射取值逻辑改成
code_map.get(code_item, f'未知({code_item})'),避免抛出KeyError异常
内容的提问来源于stack exchange,提问作者Inder
相关产品推荐
相关产品推荐

